2

にしようとし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ですか?

4

1 に答える 1

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か? 通常、フォルダー (および拡張により、Ubuntusite-packagesのフォルダーを想定しています) は、使用している python モジュールの現在のディレクトリと共に、 default に含まれています。dist-packagesPYTHONPATH

ZipCodeDatabase はどのようにインストールしましたか? そこにファイルをドロップしただけですか?helloworld.pyファイルと一緒に置いてから、インポートしてみてください。また、特に他の人があなたが抱えている問題を診断しようとしている場合、完全なスタック トレースはここで役立つ情報です。

編集:

さて、あなたがGoogle App Engineを使用していることがわかったので(パスの使用から明らかだったはずです-申し訳ありません)、モジュールをロードするためにsite-packagesorを使用していないようです。dist-packages関連するサードパーティ ライブラリを使用してプロジェクト内にサブディレクトリを作成し、そのサブディレクトリをパスに追加する必要があります。免責事項:私は GAE を使用したことがないので、これでマークを逃している可能性があります。

プロジェクトを構築し、アプリケーション内から追加のディレクトリをパスに追加する方法については、この回答を確認してください。

于 2013-04-20T07:36:30.103 に答える