2013-04-20 61 views
2

我正在尝试import ZipCodeDatabasehelloworld.pyPYTHONPATH冲突

  • 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 2013-04-20 05:17:19

+0

@minitech你也把拼写错误回来! – jamylak 2013-04-20 05:24:00

+0

@jamylak:什么拼写错误? 'phyton'?对不起,我正在修订版本1. – Ryan 2013-04-20 14:32:11

回答

3

我很怀疑你有一个叫ZipCodeDatabase模块。该命名约定通常保留在位于module内的class。模块通常是小写或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-packagesdist-packages加载模块。您应该使用相关的第三方库在您的项目中创建一个子目录,并将该子目录添加到您的路径中。 免责声明:我从未使用过GAE,所以我可能会忽略这个标记。

检查如何构建你的项目,并从应用程序中添加额外的目录到你的输出路径this answer

+0

我可以使用ZipCodeDatabase,当我在闲置时使用它,但有错误时没有模块在谷歌应用程序引擎程序中使用时发现。我不确定这是一个谷歌应用程序引擎问题还是一般的python问题。我看了如何在谷歌应用引擎中导入模块,这似乎也不适合我。 – Ray 2013-04-20 16:35:21

+0

@ user189364看看这个答案,然后问题:http:// stackoverflow。COM /问题/ 2710861 /如何对进口模块功能于谷歌 - 应用程序引擎 – 2013-04-21 03:45:40