我在水蟒中比较绿。如果我问一个愚蠢的问题,请原谅我。以下是我面临的问题。非常感谢您抽出宝贵的时间。
我安装了anaconda2,并使用jupyter笔记本运行python程序。 一个程序使用了opencv。当我在笔记本电脑上运行问题时,完全没有问题。 当我使用终端运行程序时,出现以下错误:
Traceback (most recent call last):
File "classify.py", line 9, in <module>
import imutils
File "/home/oakcloud/anaconda2/lib/python2.7/site-packages/imutils/__init__.py", line 8, in <module>
from .convenience import translate
File "/home/oakcloud/anaconda2/lib/python2.7/site-packages/imutils/convenience.py", line 6, in <module>
import cv2
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /home/oakcloud/anaconda2/lib/python2.7/site-packages/../../libopencv_objdetect.so.3.3)
我的PC中只有一个conda env命名为base,在我使用 source Activate base 命令输入env之后遇到了这样的问题。我以为笔记本应该使用相同的环境。
以上问题抱怨库不匹配。我检查了sys目录中的lib:
oakcloud@ubuntu:/usr/lib/x86_64-linux-gnu$ pwd
/usr/lib/x86_64-linux-gnu
oakcloud@ubuntu:/usr/lib/x86_64-linux-gnu$ ll libstdc++.so.*
lrwxrwxrwx 1 root root 19 Feb 6 12:07 libstdc++.so.6 -> libstdc++.so.6.0.21
-rw-r--r-- 1 root root 1566440 Feb 6 12:21 libstdc++.so.6.0.21
要解决此问题,我想我可以将lib替换为新版本。
当我在anaconda中找到该库时,该库已经安装:
oakcloud@ubuntu:~/anaconda2$ ll ./pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
lrwxrwxrwx 1 oakcloud oakcloud 32 Oct 6 2017 ./pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6 -> ../../../lib/libstdc++.so.6.0.24*
所以我的问题是我该如何在shell中使用与笔记本中相同的设置?
欢呼
朱利安