Странный питон ImportError - PullRequest
       5

Странный питон ImportError

3 голосов
/ 31 октября 2008

Вот мои настройки: Mac, работающий под управлением OS X Tiger. Windows XP работает на виртуальной машине (Parallels). В Windows XP домашний каталог моего Mac сопоставлен как сетевой диск.

У меня есть два файла в каталоге моего домашнего каталога Mac:

foo.py

pass

test.py

import foo

Если я запускаю test.py из моей виртуальной машины, набирая 'python test.py', я получаю это:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import foo
ImportError: No module named foo

Если я попытаюсь импортировать foo из консоли (запустив python под Windows из той же директории), все будет хорошо:

Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo
>>>

Если я запускаю test.py с Mac python, все хорошо.

Если я скопирую test.py и foo.py в другой каталог, я могу без проблем запустить test.py под Windows.

В исходном каталоге есть init .py, но он пуст. Кроме того, копирование его с другими файлами ничего не нарушает в предыдущем абзаце.

Не заданы переменные среды, связанные с python.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 31 октября 2008

Добавить систему импорта; выведите sys.path в начало test.py. Посмотрите, что он печатает в случае неудачи. Если "." нет в списке, это может быть вашей проблемой.

1 голос
/ 31 октября 2008

Как случайное предположение: доступны ли права доступа к файлу foo.py из клиента Windows? (например, попробуйте открыть с помощью блокнота с виртуальной машины).

Если все в порядке, попробуйте выполнить:

python -v -v test.py

и глядя на вывод (в качестве альтернативы, установите PYTHONVERBOSE = 2). Это должно перечислить все места, из которых он пытается импортировать foo. Сравнение его с аналогичным следом на рабочей машине может дать некоторые дополнительные подсказки.

...