2012-02-28 5 views
4

Apache/mod_wsgiでWindows 7にDjangoを設定しました。私は停止する必要がありますし、私は任意のpythonコードを変更するたびに、サーバーを起動します。それを避ける方法はありますか?djangoプロジェクトでいくつかのファイルを変更した後でApacheを再起動する必要があるのはなぜですか?

これはjavascript/phpの変更では発生しません。つまり、変更されたコードの効果を確認するためにApacheの再起動は必要ありません。正しい方向へのプッシュは大きく助けになるでしょう。ありがとう!

答えて

1

でそれについての公式ドキュメントを読んで:私は[ここ](http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode#Monitoring_For_Code_Changes)ドキュメントを読んで、

まあ

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

+0

こんにちは@Graham、私はドキュメントを見て#Monitoring_For_Code_Changesセクションのコードをインストールしました。 。 – Unos

4

Apacheを再起動する必要はありません。 wsgiファイルを変更するだけで(UNIX環境ではtouch myfile.wsgiを使用できます)、リロードされます。言い換えれば、ファイル内容自体が更新されていなくても、wsgiファイルの最終更新日が更新されていることを確認してください。

P.S.私はあなたがデーモンモードで動作していると仮定しています。埋め込みモードを使用している場合、私の提案はあなたを助けませんし、それができないのであれば私は気にしません... this questionも参照してください。

編集:申し訳ありませんが、デーモンモードがonly supported on UNIXであることはわかりませんでした。その場合は、他の質問のリンクが役立つかもしれませんが、私はそれについての経験がないので、私は確かに言えません。

+0

実際、wsgiはWindows 7の組み込みモードで実行されています。したがって、私は些細な変更を行うたびにサーバーを再起動する以外に方法はありません。そして、私は 'MaxRequestsPerChild 1'の解決策が好きではありません。なぜなら、PHP/jsファイルでもサーバを再起動するからです。したがって、Windowsではこれを解決できません:( – Unos

2

これは、Pythonコードが.pycファイルにキャッシュされているためです。そのキャッシュが使用された後、一度解釈されます。申し訳ありません、私の間違い!それを指摘してくれてありがとう。

ファイルを頻繁に変更し、すぐに開発結果を確認する必要がある場合は、Django開発版を使用してください。それは次のようにPythonインタプリタを使用してコマンドラインから起動され

のrunserver のpython manage.py次に、ポート8000​​

上のアプリの実行中の@ localhostのを持っていますしてください、ドキュメントを読んで行きます!

+1

コードは '.pyc'ファイルではなくメモリにキャッシュされます。対応する' .pyc'ファイルは削除できますが、変更を見るためにはサーバを再起動する必要があります。 – DrTyrsa

+0

pycファイルはそれとは関係ありません。まず最初に、Apacheユーザーはpycファイルを作成するための書き込み権限を持っていませんし、ロードされたモジュールはすでにメモリに入っていますので、pycファイルはそれ以降のリクエストは、プロセスの起動時にのみpyファイルが変更された場合に自動的に再生成されます。 –