2011-01-16 3 views
2

をインポートすることはできません、私持っている私はインポートしようとすると、スタックトレース次ModuleA:それは再帰的に/再ModuleAをインポートしているためはImportError:名前ModuleA

Traceback (most recent call last):               
    File "menu.py", line 9, in <module>              
    from tmserver import Module1               
    File "~/tmserver/Module1.py", line 10, in <module>                   
    from tmserver.PackageA import ModuleA            
    File "~/tmserver/Package1/ModuleA.py", line 8, in <module>                
    from tmserver.Package2 import Module2            
    File "~/tmserver/Package2/Module2.py", line 15, in <module>                 
    from tmserver.Package3 import Module3              
    File "~/tmserver/Package3/Module3.py", line 5, in <module>                   
    from tmserver.PackageA import ModuleA            
ImportError: cannot import name ModuleA 

これはありますか?

+0

おそらく、tmserverという2つの異なるファイルがありますか?あなたはsys.pathと一緒にそれをデバッグするためにいくつかのプリントを追加することができます...まだ変わっています。 – TryPyPy

+2

セットアップの – XORcist

答えて

3

これは論理的な結論のようです。あなたが実行していたコードのサンプルを投稿した方が、より良い返答を得ることができるでしょうか?

+2

+1で何がうまくいかないのかの良い説明については、ここのセクション「循環輸入」http://effbot.org/zone/import-confusion.htmを参照してください。ただし、コードを追加する必要はありません。それはすべてスタックトレースにあります。残りのインポートが完了する前にModuleAをインポートすると、ModuleAが完全にロードされていないため、ModuleAを再度インポートしようとします。無限再帰。 – XORcist

関連する問題