「バイトコードの問題」を解決する方法
.pyc
そもそもなぜこれらの不要なファイルがそこにあるのかを理解する必要があります (これらはリポジトリにありますか? それらは無視する必要があります)。
コメントに記載されているように、.pyc
問題を引き起こすダングリング ファイルがある場合は、.pyc
新しいコードをサーバーにデプロイするときに、プル プロセスの一部としてすべてのファイルを削除することを組み込むことができます。アプリを実行すると、モジュールのインポート時に必要なものが再作成されます。
ここで、バイトコードを生成したくない場合は、PYTHONDONTWRITEBYTECODE
環境変数を使用できますが、これはかなり過剰な解決策と思われるため、お勧めしません。
古いバージョンのコードをプルしているように見える Apache を解決する方法。
さて、ここで問題になっている 2 つの問題を区別する必要があります。
- Python によって生成された古いバイトコード ファイル (
.pyc
ファイルなど)。これは、ファイルをモジュールに置き換えるなどの特定のケースで問題を引き起こす可能性がありますが、多くの場合、心配する必要はありません。
- Mod WSGI が、アップロードされた新しいコードをリロードしない。これは、Mod WSGi を実行しているモードによって異なります。通常の症状は、ページにアクセスすると、新しいバージョンまたは古いバージョンのコードがランダムにプルされるように見えることです。
最初の問題を解決するには、未使用のバイトコード ファイルを削除するだけです。しかし、繰り返しますが、これはおそらく問題の原因ではありません。
2 番目の問題を解決するには、2つの解決策があります。
- 新しいコードをアップロードするときに apache を再起動します。を使用する
apache2ctl -k graceful
と、これはユーザーに対して透過的になり、共有ホスティングを使用していない限り、「サーバーの再起動が問題になる可能性がある」理由がわかりません。
- コードのリロードを使用して、
mod_wsgi
ドキュメントを確認することをお勧めします。
バイトコードが問題だとは思いません。おそらくコードのリロードが問題です。