Pythonインポートステートメントがランダムに失敗するエラーをデバッグしようとしています。それ以外の場合は、正常に実行されます。
これは私が見る例外の例です。時々私はこれを見るでしょう、時々私は別のモジュールで別のものを見るでしょう、しかしそれは常に4つのモジュールの1つでヒットするようです。
ERROR:root:/home/user/projecteat/django/contrib/auth/management/__init__.py:25: RuntimeWarning: Parent module 'django.contrib.auth.management' not found while handling absolute import
from django.contrib.contenttypes.models import ContentType
ランダムな性質のため、スレッドの問題であるとほぼ確信していますが、インポートエラーが発生する理由がわからないため、デバッグで何を探すべきかわかりません。異なるスレッドが同じモジュールをロードしようとしている場合、これはファイルシステムの競合が原因である可能性がありますか?
Django1.4のLiveServerTestCaseをGoogleAppEngineの開発サーバーで動作させようとしています。メインスレッドはdjangoのテストフレームワークを実行します。LiveServerTestCaseベースのテストクラスをロードすると、子スレッドが生成され、ローカルウェブサーバーであるAppEnginedev_appserverが起動されます。メインスレッドは引き続きテストを実行し、Seleniumドライバーを使用してHTTPリクエストを作成します。これは、子スレッドのdev_appserverによって処理されます。
テストフレームワークは、テストケースクラスを破棄する前に、LiveServerTestCaseベースのクラスでいくつかのテストを実行する場合があります。分解時に、子スレッドは終了します。
例外は子(HTTPサーバー)スレッドで発生しているようです。ほとんどの場合、単一のテストケースクラス内のテスト間で発生しています。
App Engine LiveServerTestCaseクラスのコードは次のとおりです:https ://github.com/dragonx/djangoappengine/blob/django-1.4/test.py
この質問に必要なすべてのデバッグ情報を提供するのはかなり難しいです。私は主に、PythonのインポートステートメントでRuntimeWarningエラーが発生する理由についての提案を探しています。