3

私は Python 3.2 (ビルドと実行の両方) を使用しています。これが私の質問です。

次の設定で Python アプリケーションを出荷する予定です。

Main.pyコンパイルされたモジュールを使用しているメインスクリプト(たとえば、 )がありますModule1.pyc。正確には、ディレクトリ構造は次のとおりです。

.\Main.py
.\__pycache__\Module1.cpython-32.pyc

Python インタープリターを使用してメイン スクリプトを実行すると、次のエラーでモジュールが見つかりません。

Traceback (most recent call last):
  File "Main.py", line 10, in <module>
    import Module1
ImportError: No module named Module1

PYTHONPATH現在のディレクトリを環境変数に追加したことに注意してくださいsys.path。また、内部__pycache__ディレクトリも追加され、 に表示されsys.pathます。

Module1 が見つからない理由がわかりません。Module1.cpython-32.pyc という異なるファイル名が原因である可能性があります。しかし、それが Python 3.2 インタープリターが生成する方法です。

4

2 に答える 2

12

PEP-3147をご覧ください。これらは、python-lookupメカニズムがどのように機能するかを説明しています。

ここに画像の説明を入力してください

したがって、具体的なケースでは、ファイルModule1.pycをルートフォルダーに直接配置します。

于 2012-07-25T11:20:38.153 に答える
3

以下に示すように、2つのステップで問題が解決しました。ステップ1:Module.cpython-32.pycファイルを.__pycache__ディレクトリから。\にコピーします。ステップ2:ファイルの名前をModule.pycに変更します。

PS:詳細を共有してくれたgeccoに感謝します。

于 2012-07-25T11:52:20.683 に答える