一段时间以来,我一直在使用opencv(4.5.2源代码编译)和Python3.8.5(在Ubuntu18.04上),但对于某些项目,我确实需要使用tensorflow,它不适用于我的python版本。所以我安装了python3.7(从源代码),当启动我的pipenv shell时,一切似乎都正常,我可以使用python3.7
但在尝试导入cv2时,我遇到了以下错误:
ImportError: OpenCV loader: missing configuration file: ['config-3.7.py', 'config-3.py']
因此,我认为我应该针对我的特定Python 3.7重新编译OpenCV,但我也想让它与我以前的Python 3.8一起工作。针对这两个版本,我如何实现这一点
谢谢你抽出时间
安托万
最后,我成功地从源代码构建了python3.7和3.8的配置文件,并执行了以下操作:
我第一次编译OpenCv时没有为Python编写任何参数。因此,默认情况下,它检测到我的Python3.8并创建config-3.8.py文件
然后,我用以下参数重新编译了针对Python 3.7的OpenCv:
请注意,PYTHON3_库必须以共享库(.so和not.a)为目标。我第一次编译Python3.7时没有使用enable-shared标志,所以它不起作用
在运行cmake之前(从OpenCv),在配置步骤中,您应该以这些打印的信息结束,以确保您的目标是正确的python:(这里是针对python3.8的,但下面的步骤将显示python3.7)
这些PYTHON_标志及其用法不在最新的Opencv文档(如4.5.2)中,而仅在以前的文档(如3.2.0)中:
https://docs.opencv.org/4.5.2/d7/d9f/tutorial_linux_install.html
https://docs.opencv.org/3.2.0/d7/d9f/tutorial_linux_install.html
然后我可以在3.7和3.8中导入cv2
相关问题 更多 >
编程相关推荐