8

開発中にコードの変更をすぐに有効にしたい。変更されたファイルを検出して、実行中の Python (2.7) アプリケーションに再ロードするにはどうすればよいですか?

編集:

「Ivo van der Wijk」によってリンクされたページを読んだ後、Django のように、コードが変更されたときに Web アプリケーションを再起動するのが最善だと思います。したがって、実際の質問は次のとおりです。ファイルの変更を監視する方法は?

4

3 に答える 3

7

いくつかの Python スクリプトで同じ効果が欲しかったので、続けてスクリプト SourceChangeMonitor.py を作成しました。こちらの手順で見つけることができます。スクリプトだけが必要な場合は、ここに直接リンクがあります

于 2011-11-10T11:19:31.583 に答える
6

この質問は されています

これには reload(module) を使用できますが、厄介な副作用に注意してください。たとえば、既存のコードは元のコードに基づいており、魔法のように新しい属性や基本クラスが追加されることはありません。

于 2010-10-05T10:43:46.173 に答える
2

を使用すると副作用が発生するため、これはほとんどのアプリケーションには意味がありませんreload。さらに、変更を検出してすべてのモジュールをリロードするコードに費やした時間は、アプリケーションの再起動だけに費やされた可能性があります。たくさんのモジュールをインポートしたり、多くのサブモジュールを含むプロジェクトがある場合、それは非常に複雑です。

場合によっては、それは良い考えです。Django Webフレームワークは、manage.py runserver変更されたモジュールを自動的にリロードする開発サーバー()を提供します。見てくださいdjango.utils.autoreload-ファイルの変更時間を使用して、すべてのPythonファイルの変更をテストします。前に述べたように、これは一部のアプリケーションにとってのみ良い考えです。Webアプリケーションはステートレスであるため、副作用がほとんどないかまったくない状態でリロードできます。

于 2010-10-05T10:51:04.393 に答える