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 오류가 발생합니다. 한마디로
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에 의해 찾을 수 없습니다 : (다른 프로젝트에서)
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
이 오류가 패키지의 module2.py. 그러나 보시다시피 모듈 1은 externaltest.py에 의해 직접 가져올 수 있습니다. 패키지가 자체 모듈을 가져올 수 없습니다.