当我尝试从特定目录(让我们称之为python_scripts)导入opencv时,python2.7解释器将挂起。但是,当我从主目录(或python_scripts以外的任何其他目录)导入时,导入工作正常:
python2.7
>>> import cv2
>>>
我看不出目录之间有什么明显的区别,除了工作的是我的主目录,挂起的是一个目录,里面有一堆python脚本。没有任何bash脚本改变$PYTHONPATH变量。
另一个问题是,当我尝试在主目录中导入scipy和numpy时,它们可以正常工作。然而,在python_scripts目录中,"import scipy"挂起,我得到以下numpy错误:
>>> import scipy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/numpy/__init__.py", line 153, in <module>
from . import add_newdocs
File "/usr/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "/usr/lib/python2.7/site-packages/numpy/lib/__init__.py", line 17, in <module>
from . import scimath as emath
ImportError: cannot import name scimath
其他导入,如"import math"或"import random"在python_scripts目录下可以正常工作。只有opencv、numpy和scipy库似乎有问题。
这种情况并不总是发生。我能够很好地导入cv2并运行一些基本的映像I/O命令。这个问题开始发生时,我试图使用视频捕获。但现在我根本无法导入opencv。
我已尝试关闭并重新打开终端仿真程序,但没有成功。
任何帮助都是感激的。
编辑:python_scripts目录列表为:
cameo.py filters.py managers.pyc rects.pyc utils.py
cameo.py.org filters.pyc MyOutputVid.avi stream_video.py utils.pyc
cascades io.py MyPic.png tags video_stream.py
depth.py io.pyc notes.txt trackers.py
depth.pyc managers.py rects.py trackers.pyc
cascade是一个包含.xml文件的目录:
haarcascade_eye.xml haarcascade_mcs_mouth.xml
haarcascade_frontalface_alt.xml haarcascade_mcs_nose.xml
正如Bakuriu所说,出现问题是因为python已经有一个I/O模块,而我的目录中包含一个io.py文件。通过重命名io.py和io.py文件修复了这个问题。佩克文件。