質問

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

編集:

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

役に立ちましたか?

解決

この質問は尋ねられました a 番号 時代

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

他のヒント

Pythonスクリプトのいくつかに同じ効果が欲しかったので、続行してスクリプトをsourcechangemonitor.pyにしました。指示で見つけることができます ここ. 。スクリプトが必要な場合は、 ここ 直接リンクです

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top