Странная ошибка импорта Python - PullRequest
0 голосов
/ 16 января 2012

Я новичок в Python.Я получаю ImportError и, похоже, перепробовал все, что есть в документации и различных заметках на этом сайте и других

Мой код структурирован следующим образом:

 vsm
 |
 |______bin
 |      vsmx.py
 |______site-packages
          __init__.py
        |
        |_____libs
             __init__.py
             monitor.py

В monitor.py Iу меня есть функция с именем 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 голос
/ 16 января 2012

ImportError: No module ... обычно очень (неясная) ошибка, означающая, что у вас есть циклический импорт.

Модуль a.py:

 import b

Модуль b.py:

 import a

Тогда main.py:

 import a

Это должно вызвать ImportError: Нет модуля с именем a, потому что a импортирует b и не готов, когда b пытается его импортировать.

...