2013-04-20 45 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