私は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によって直接インポートすることができます。パッケージは独自のモジュールをインポートできません。