我有一个pytestlib包和模块如下: test.py只是创建module2而module2导入module1。 如果编译并直接在自己的文件夹中运行,test.py代码正在按预期工作。
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'
简而言之,在制作软件包之后,软件包的module2.py找不到module1。但是如您所见,module1可以通过externaltest.py直接导入。包无法导入自己的模块。
答案 0 :(得分:0)