奇怪的Python导入错误
我刚开始学习Python,遇到了ImportError(导入错误),感觉自己试过了文档里和这个网站以及其他地方的各种解决办法,但还是没解决。
我的代码结构是这样的:
vsm
|
|______bin
| vsmx.py
|______site-packages
__init__.py
|
|_____libs
__init__.py
monitor.py
在monitor.py文件里,我有一个叫getStr的函数,而两个__init__.py
文件是空的。
我把PYTHONPATH设置成了vsm/site-packages和vsm/site-packages/libs。当我在命令行运行python bin/vsmx.py时,出现了:
Traceback (most recent call last):
File "bin/vsmx.py", line 15, in <module>
from libs.monitor import getStr
File "/var/src/vsm/bin/vsmx.py", line 15, in <module>
from libs.monitor import getStr
ImportError: No module named monitor
不过,当我尝试在交互模式下运行时,似乎又能正常工作。我在Windows和Linux上都试过,使用的是Python 2.6.1。
如果能给我一些建议,我会非常感激。
1 个回答
1
ImportError: No module... 这个错误通常是个比较难懂的问题,意思是你有循环导入的情况。
模块 a.py:
import b
模块 b.py:
import a
然后是 main.py:
import a
这应该会导致 ImportError: No module named a,因为 a 在导入 b 的时候,b 还没准备好就想要导入 a。