尝试在python中导入cv2时出现接收和导入错误(Ubuntu 18.04)

时间:2020-08-22 23:05:31

标签: python opencv import

首先,非常感谢您阅读。

几天前,我在Ubuntu 18.04桌面系统中安装了Python3(3.6.9)和opencv 3.4.10。在遇到一些编译问题(与python3不相关)后,我需要将opencv降级到3.4.0,因此我使用sudo make uninstall顺序删除了opencv 3.4.10,并测试了它是否已卸载,就像我尝试将其导入一样。 python我收到以下错误:

libopencv_hfs.so.3.4: cannot open shared object file: no such file or directory

我认为安装3.4.0版本可以解决问题,但是现在已经安装了,当我尝试以python3脚本导入它时,我遇到了相同的错误。我认为此错误必须与python3引用导入文件的方式有关。我认为它仍指向3.4.10的卸载版本,但我找不到更改它的方法。

有人可以帮我解决这个问题吗?

非常感谢您。

安德烈斯。

2 个答案:

答案 0 :(得分:0)

使用virtualenv可以解决此问题。查看如何使用:Installing packages using pip and virtual environments

在virtualenv中完成安装要求后,请在该处运行python脚本,以仅使用指定的版本。

答案 1 :(得分:0)

再次问好,谢谢您的回答。

我已经能够解决问题。以为我已经卸载了旧版本的opencv,我的python虚拟环境路径中仍然有一个cv2.so文件,并且没有被新的cv2.so替换,因此python尝试导入旧的而不是新的。

旧的cv2.so(我在python中导入cv2时引用的那个)在这里-> ~/.virtualenvs/cv/lib/python3.6/site-packages/cv2.so 我要在导入时使用的cv2.so在这里-> /usr/local/lib/python3.6/site-packages/cv2/cv2.so,所以我用lib目录中的一个替换了虚拟环境路径中的一个,并且做到了:)