darkflow调用错误Python版本致YOLO异常,求解决方案
解决flow命令调用错误Python版本的问题
你这明显是踩了Python环境冲突的坑——系统自带的pip3绑定了Python3.5,而你的cv2只装在Anaconda的Python3.6环境里,用系统pip装的darkflow自然找不到依赖。放心,不用删系统的Python3.5(确实不能乱删,Ubuntu好多系统组件都依赖它),给你几个靠谱的解决办法:
方法一:用Anaconda的pip重新安装darkflow
这是最稳妥的方式,直接让darkflow绑定到有cv2的Python环境:
- 先卸载之前用系统
pip3装的darkflow:pip3 uninstall darkflow - 切换到你之前下载的darkflow仓库目录,用Anaconda的pip来安装:
(如果习惯用激活脚本,也可以先执行/home/bombus/anaconda3/bin/pip install .source /home/bombus/anaconda3/bin/activate激活Anaconda的base环境,再直接用pip install .) - 之后再运行
flow --h,应该就能正常识别到cv2了。
方法二:修改flow脚本的Python解释器路径
如果不想重装,直接改已安装的flow脚本的解释器路径就行:
- 先找到flow脚本的位置:
输出一般是which flow/home/computername/.local/bin/flow这类路径 - 用编辑器打开这个脚本,把第一行的
#!/usr/bin/env python3改成你Anaconda的Python路径:#!/home/bombus/anaconda3/bin/python - 保存后再执行
flow --h,脚本就会用Anaconda的Python3.6运行,自然能找到cv2。
方法三:让Anaconda环境优先(永久解决环境冲突)
如果以后不想再碰到这类问题,可以把Anaconda的bin目录加到系统PATH最前面,让系统优先用Anaconda的工具:
- 临时生效(仅当前终端会话):
export PATH="/home/bombus/anaconda3/bin:$PATH" - 永久生效(每次开机都生效):
打开~/.bashrc文件(用zsh的话就是~/.zshrc),把上面的export命令加到文件末尾,然后执行:source ~/.bashrc - 之后卸载旧的darkflow,用
pip install .重新安装,此时的pip是Anaconda的,flow就会绑定到正确的Python环境。
内容的提问来源于stack exchange,提问作者JMath
相关产品推荐
相关产品推荐

