我正在使用Ubuntu 12.04。我最初安装了opencv 3.0-beta版本。由于某些原因,我在使用命令卸载旧版本后切换回旧版本2.4.9:
$> sudo make uninstall
$> sudo find / -name "*opencv*" -exec rm -i {} \;
我删除了opencv 3.0。
但是现在当我在Python中使用opencv 2.4.9和import cv2
时,它会显示
导入错误:libopencv_core.so.3.0:无法打开共享对象文件:没有这样的文件或目录
这是否意味着卸载不完整。或者有没有办法解决这个错误和import cv2
opencv 2.4.9?
答案 0 :(得分:1)
我遇到了同样的问题。我通过删除"/usr/local/lib/python2.7/dist-packages"
中的python2.7版本的cv2文件来修复此问题,并在"/usr/local/lib/python3.4/dist-packages"
中为python 3.4删除了另一个cv2文件。我忘记了文件的确切名称但你应该看到它
答案 1 :(得分:0)
在我能够成功重新安装之前,我运行了find / remove以查看以下所有内容(我认为第2行和第4行是最重要的):
sudo find / -name "*opencv*" -exec rm -i {} \;
sudo find / -name "*opencv*" -exec rm -r {} \;
sudo find / -name "*OpenCV*" -exec rm -i {} \;
sudo find / -name "*OpenCV*" -exec rm -r {} \;
sudo find / -name "*cv2*" -exec rm -i {} \;
sudo find / -name "*cv2*" -exec rm -r {} \;
我正在使用此页面中的脚本进行安装:https://help.ubuntu.com/community/OpenCV。
答案 2 :(得分:0)
在树莓派4上编译并安装opencv 4.1.1(全新安装)后,当我尝试导入cv2时得到了类似的消息:
void findPairHelper(int *a, int size, int d, int r[3]) {
if (size < 2) return; // base case: no match, r[0] is 0
for (int i = 0; i < size - 1; i++) {
if (abs(a[i] - a[size - 1]) == d) {
r[0] = 1;
r[1] = a[i];
r[2] = a[size - 1];
return; ///////////// found
}
}
findPairHelper(a, size - 1, d, r); // recurse with smaller array
}
int *findPair(int *array, int size, int distance) {
int *result = calloc(3, sizeof *result); // result[0] == 0 means 'no pair found'
findPairHelper(array, size, distance, result);
return result; // remember to free(result) at some point
}
我尝试了this solution,但是没有用,所以我以一种“肮脏”的方式做到了:
我运行了命令
(cv) pi@raspberrypi:~ $ python
Python 3.7.3 (default, Jul 25 2020, 13:03:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: libopencv_reg.so.3.3: cannot open shared object file: No such file or directory
>>>
我有一堆台词。重要的是:
(cv) pi@raspberrypi:~ $ sudo ldconfig -v
然后我创建了一个符号链接:
...
/usr/local/lib:
....
libopencv_reg.so.4.1 -> libopencv_reg.so.4.1.1
...
最后,它成功了!
(cv) pi@raspberrypi:~ $ cd /usr/local/lib
(cv) pi@raspberrypi:/usr/local/lib $ sudo ln -s libopencv_reg.so.4.1.1 libopencv_reg.so.3.3
重新启动树莓派并再次导入cv2后,新的.so文件“丢失”,因此我对'/ usr / local / lib'中的所有其他libopencv _ *。so.4.1.1文件重复了最后一步。 / p>
(cv) pi@raspberrypi:~ $ python
Python 3.7.3 (default, Jul 25 2020, 13:03:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.1.1'
>>>