1

背景情報

  • サーバーとローカルの 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

私は完全に困惑しています。コードはまったく同じです。エラーが発生する前に、インポートチェーンもわずかに異なるという事実に、私は二重に困惑しています。

それで...どこから探し始めるべきかについて何かヒントはありますか?

4

1 に答える 1