背景情報
- サーバーとローカルの Python 2.7.1 (r271:86832)
- すべての依存関係が同じで virtualenv を使用する
- ローカル Python は 64 ビットです
- サーバー Python は 32 ビットです
- ジャンゴの使用
実際の問題
サーバーで循環インポートの問題が発生しましたが、テスト中には検出されませんでした。
単純な循環インポートの例を実行すると、循環インポートが実際にローカルでエラーになっていることがわかります。
各ファイルがインポートされるときに、各ファイルの上部にいくつかのプリントを貼り付けました。
ローカルの動作:
priority.__init__.py
sync.tasks.keywords.py
priority.reasons.py
priority.__init__.py (<- circular import but it works??)
priority.reasons.py
サーバーの動作:
priority.__init__.py
sync.tasks.keywords.py
priority.__init__.py (<- circular import but it works??)
Traceback (most recent call last):
...
from sync.tasks.keywords import check_keywords
ImportError: cannot import name check_keywords
私は完全に困惑しています。コードはまったく同じです。エラーが発生する前に、インポートチェーンもわずかに異なるという事実に、私は二重に困惑しています。
それで...どこから探し始めるべきかについて何かヒントはありますか?