2

昨日、Google App Engineを使用してPythonで開発すると、現在のバージョンのスクリプトの実行が停止しました。.pyソースが変更された場合でも、最新バージョンを実行する代わりに、以前にコンパイル済みの.pycを実行しているようです。

エラーメッセージは、実際には最新のソースからの正しい行を引用しています。行の位置が変更された場合を除いて、以前にエラーが発生した場所にある行を引用します。

.pycファイルを削除すると、現在のバージョンから再作成されます。すべての.pycsを削除することは、今のところ不十分な回避策です。

問題の根本原因を特定するにはどうすればよいですか?

4

3 に答える 3

2

システム時計を確認しましたか?Pythonは、タイムスタンプに基づいて.pycと.pyのどちらを使用するかを決定すると思います。システムクロックがプッシュバックされた場合、システムクロックが最後にビルドされた時刻に追いつくまで、.pycファイルは新しいものとして認識されます。

于 2011-04-12T01:09:11.430 に答える
2

コンパイルされている場所とは異なるシステムで.pyファイルを編集していますか?

コンパイラは、変更日が.pycファイルの変更日よりも新しい場合、.pyファイルを再コンパイルします。

使用するために.pycファイルを選択しているという事実は、.pyファイルの変更日が古いという事実を示しています。これは、.pyファイルが別のシステムで変更され、それが使用されるシステムにコピーされ、編集環境/システムのクロックがランタイム環境/システムのクロックの後ろに設定されている場合にのみ可能です。

于 2011-04-12T01:17:04.747 に答える
0

次の手順で一時的に問題を解決しました。

  1. アプリケーションフォルダからGoogleAppEngineLauncherを削除します。
  2. ファイルの名前を〜/ Library / Application Support / GoogleAppEngineLauncher / Projects.plistに変更します(例:Project.plist.backup
  3. ファイルの名前を〜/ Library / Preferences / com.google.GoogleAppEngineLauncher.plist(com.google.GoogleAppEngineLauncher.plist.backupなど)に変更します。
  4. Google AppEngineLauncherを再度ダウンロードしてインストールします。
  5. 「ファイル」、「既存のアプリケーションを追加…」を使用してプロジェクトを再度追加します。以前に設定したフラグを設定することを忘れないでください。

または、GAELを一度起動して閉じ、バックアップした設定ファイルを元の場所に戻して、再構成する必要がないようにすることもできます。

編集:それを修正することが判明しました…一時的に。デバッグが非常に簡単な問題ではありません。奇妙なことに、コマンドラインからappserverを実行するときに機能します。

dev_appserver.py testproject/ -p 8082 --debug
于 2011-05-31T19:55:00.733 に答える