2013-04-20 4 views
2

Я пытаюсь import ZipCodeDatabase в helloworld.py.Конфликт PYTHONPATH

  • helloworld.py существует в /google-app-engine/helloworld
  • ZipCodeDatabase модуль существует /usr/local/lib/python/python2.7/dist-packages
  • PYTHONPATH = /usr/local/lib/python/python2.7/dist-packages;/usr/local/lib/python/

При составлении helloworld я все еще получаю "ZipCodeDatabase модуль не найден". Почему он не выбирается из PYTHONPATH?

+0

спасибо minitech, :) вы избили меня, прежде чем я смог сделать редактирование спасибо – Ray

+0

@minitech вы также положили орфографическую ошибку! – jamylak

+0

@jamylak: Какая орфографическая ошибка? 'Phyton'? Извините, я работал над редакцией 1. – Ryan

ответ

3

Я очень сомневаюсь, что у вас есть модуль под названием ZipCodeDatabase. Это соглашение об именах обычно зарезервировано для class, которое находится в пределах module. Модули обычно имеют строчные или нижние_значения, чтобы представлять файл, содержащий модуль. Я предполагаю, что вы установили здесь pyzipcode, но это может быть другой модуль.

# assuming pyzipcode.py in the dist-packages directory 
$ python -c 'from pyzipcode import ZipCodeDatabase' 

Если я ошибаюсь, выше, то вы можете быть уверены, что вы используете версию питона, который установлен модуль ZipCodeDatabase?

Некоторые шаги по устранению неполадок:

$ which python 
$ python --version 
$ python -c 'import ZipCodeDatabase' 
$ ls -l /usr/local/lib/python2.7/dist-packages/ | grep -i zip 

Кроме того, действительно ли вам необходимо указать PYTHONPATH линию? Как правило, папка site-packages (и по расширению я предполагаю, что папка dist-packages на Ubuntu) включена в значение по умолчанию PYTHONPATH, а также текущий каталог используемого модуля python.

Как вы установили ZipCodeDatabase? Вы просто оставили файл там? Попробуйте поместить его рядом с вашим файлом helloworld.py и попробуйте импортировать его затем. Кроме того, полезная информация здесь содержит полную статистику стека, особенно когда другие пытаются диагностировать возникшую у вас проблему.

Edit:

Хорошо, теперь, когда я знаю, что вы с помощью Google App Engine (должно было быть очевидно, из-за использования путей - я извиняюсь), похоже, что он не использует site-packages или dist-packages для загрузки модулей. Вы должны создать подкаталог в своем проекте с соответствующими сторонними библиотеками и добавить этот подкаталог в свой путь. Отказ от ответственности: Я никогда не использовал GAE, поэтому я мог бы пропустить этот знак.

Оформить заявку this answer о том, как структурировать проект и добавить дополнительный каталог к ​​вашему пути из приложения.

+0

Я могу использовать ZipCodeDatabase, когда я использую его в режиме ожидания, но с ошибкой не обнаружен модуль при использовании в программе движка Google. Я не уверен, является ли это вопросом движка Google или общим вопросом python. Я посмотрел, как импортировать модули в движок Google, и это тоже не работает для меня. – Ray

+0

@ user189364 взгляните на этот ответ и задайте вопрос: http: // stackoverflow.ком/вопросы/2710861/как к импортным-модулей-в-Google-приложение-двигатель –