0

プロジェクトのファイル構造を明確にするために、次のコード スニペットを使用して、プロジェクトのメイン フォルダーを PYTHONPATH に動的に追加し、ファイルの場所の上からでもファイルをインポートできるようにします。

import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), "."))

これを行ったので、メイン ファイルを起動すると、手動で .pyc ファイルを削除するまで、モジュールへの変更が認識されなくなりました。したがって、何らかの理由で python が pyc ファイルが最新かどうかをチェックできなかったと思います。この問題を何らかの方法で克服できますか?

4

2 に答える 2

2

モジュール名が一意でなくなった場合、既にインポートされたモジュールのパスを追加すると、問題が発生する可能性があります。import foo親パッケージbarをに追加することを検討してください。これsys.pathも実行できるようになりましimport bar.fooた。Python は両方を異なるモジュールと見なし、モジュール ID に依存するものを台無しにする可能性があります。

そもそもなぜこのハックを行う必要があるのか​​を十分に検討する必要があります。パッケージ内に実行可能ファイルを配置している場合は、実行しないでください。

cd bardir/bar
python foo

代わりに、パッケージの一部として呼び出します

cd bardir
python -m bar.foo
于 2016-10-08T13:05:49.813 に答える