Python导入仅在特定目录中失败

当我尝试从特定目录导入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文件解决了该问题.

上一篇:Python-Masked Numpy数组比普通numpy数组慢得多


下一篇:用Python实现自控中的传递函数