我正在import ZipCodeDatabase
中尝试helloworld.py
。
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 :(得分:3)
我非常怀疑你有一个名为ZipCodeDatabase
的模块。该命名约定通常保留在class
内的module
。模块通常是小写或lower_snake_case,表示包含模块的文件。我假设你已经在这里安装了pyzipcode
,但它可能是一个不同的模块。
# assuming pyzipcode.py in the dist-packages directory
$ python -c 'from pyzipcode import ZipCodeDatabase'
如果我上面错了,那么你确定你正在运行安装了ZipCodeDatabase模块的python版本吗?
一些故障排除步骤:
$ which python
$ python --version
$ python -c 'import ZipCodeDatabase'
$ ls -l /usr/local/lib/python2.7/dist-packages/ | grep -i zip
另外,您是否真的有必要指定PYTHONPATH
行?通常,site-packages
文件夹(以及我认为Ubuntu上的dist-packages
文件夹的扩展名)包含在默认PYTHONPATH
中,以及您正在使用的python模块的当前目录。
您是如何安装ZipCodeDatabase的?你刚把文件放在那里了吗?尝试将其与helloworld.py
文件放在一起,然后尝试导入它。此外,完整堆栈跟踪在这里是有用的信息,特别是当其他人试图诊断您遇到的问题时。
编辑:
好的,现在我知道你正在使用谷歌应用引擎(应该从你使用的路径中显而易见 - 我很抱歉),看起来它没有使用site-packages
或{{ 1}}加载模块。您应该在项目中使用相关的第三方库创建子目录,并将该子目录添加到路径中。 免责声明:我从未使用过GAE,所以我可能会错过这个标记。
查看this answer了解如何构建项目,并从应用程序中将额外目录添加到路径中。