2017-03-11 13 views
0

私はpytestlibパッケージとモジュールを次のように持っています: test.pyは単にmodule2を作成し、module2はmodule1をインポートします。 test.pyコードがコンパイルされ、それ自身のフォルダで直接実行されると、期待どおりに動作しています。パッケージとして使用する場合はImportError。パッケージは独自のモジュールをインポートできません

pyteslib\ 
    - __init__.py 
    - module1.py 
    - module2.py 
    - test.py 

module1.py

class Module1Class(): 
def __init__(self): 
    self.msg ="This message is from Module1Class" 

module2.py

from module1 import Module1Class 

class Module2Class(): 
    def __init__(self): 
     module1_obj = Module1Class() 
     print(module1_obj.msg) 

test.pyしかし

from module2 import Module2Class 

module2_obj = Module2Class() 

。これをパッケージ化して別のプロジェクトからインポートすると、ImportModuleエラーが発生します。 (別のプロジェクトで)

externaltest.py

輸入SYS

from pytestlib.module1 import Module1Class # No error importing module1 
# from pytestlib.module2 import Module2Class # I have error if import module2 


module1_obj = Module1Class() 
# module2_obj = Module2Class() # I have error 

私はこのエラーがあります:要するに

Traceback (most recent call last): 
    File "X:/SDK/python/testimp/imp.py", line 3, in <module> 
    from pytestlib.module2 import Module2Class 
    File "C:\Program Files (x86)\Python35-32\lib\site-packages\pytestlib\module2.py", line 1, in <module> 
    from module1 import Module1Class 
ImportError: No module named 'module1' 

、パッケージを作成した後、モジュール1はで見つけることができませんパッケージのmodule2.py。しかし、あなたが見るように、module1はexternaltest.pyによって直接インポートすることができます。パッケージは独自のモジュールをインポートできません。

答えて

関連する問題