Проблемы PYTHONPATH с версионными именами пакетов вне site-пакетов - PullRequest
1 голос
/ 08 июля 2011

Пытаясь решить проблему управления пакетами здесь , я узнал, что у меня могут быть проблемы с тем, как я использую PYTHONPATH для доступа к пакетам вне каталога site-packages.

Я получаю сообщение об ошибке импорта при попытке импортировать модули из пакета (скажем, wxPython) из имени его версионной папки (т.е. wx-2.8-msw-unicode), когда указанный каталог не находится в каталоге пакетов сайта python.

Чтобы воссоздать проблему: создайте каталог вне каталога python, скажем, C:\foo. Загрузите wxPython и поместите его в этот каталог (давая C:\foo\wx-2.8-msw-unicode). Добавьте больше, если хотите. Добавьте каталог C:\foo в переменную окружения PYTHONPATH. Откройте новую интерактивную оболочку python и запустите

import sys
for i in sys.paths:
    print i

чтобы убедиться, что путь есть (какой он есть), тогда

import wx

Я получаю ошибку импорта. Что я делаю неправильно? Это поведение правильно?

1 Ответ

0 голосов
/ 08 июля 2011

Как я понимаю, вы говорите, это ожидаемое поведение. C:\foo находится в вашем Pythonpath, но он не содержит импортируемого модуля wx. Для успешного выполнения import wx необходимо найти один из wx.(py/pyc/pyd/dll/so) или каталог wx, содержащий файл __init__.py, непосредственно в одном из каталогов на вашем Pythonpath.

Установщик обычно разберется, убедившись, что он находится в импортируемом для вас месте. Если вы хотите сделать это самостоятельно, вы должны убедиться, что wx окажется в импортируемом месте.

...