当我尝试从特定目录导入opencv时(我们称其为python_scripts),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命令.当我尝试使用VideoCapture时,开始出现此问题.但是现在我根本无法导入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
Cascades是包含.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.pyc文件解决了该问题.