奇怪的Python导入错误

时间:2012-01-16 17:04:13

标签: python python-2.6 importerror

我是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 /站点包/库。当我从命令行运行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

然而,当我尝试以交互方式运行时,它似乎有效。我使用python 2.6.1尝试了windows和linux。

任何指针都将非常感激

1 个答案:

答案 0 :(得分:1)

ImportError:没有模块......通常是一个非常(模糊)的错误,意味着你有循环导入。

模块a.py:

 import b

模块b.py:

 import a

然后是main.py:

 import a

这会导致ImportError:没有名为a的模块,因为当b尝试导入时,a正在导入b并且没有准备好。