如何从同一个子包中导入另一个模块中的模块?
How to import a module in another module from the same subpackage?
我的包树如下:-
My_package
|
+--__init__.py (empty)
+--mainfile.py
+--main_modules
|
+--__init__.py (empty)
+--module1.py
+--module2.py
模块2的内容:-
class Wish:
def greatings(self):
print("Hello World!")
wish = Wish()
当我尝试从模块 1 中的模块 2 导入愿望时:-
模块1的内容:-
from module2 import wish
没有错误。
但是当我在 mainfile.py 中导入两个模块时,
mainfile.py的内容:-
from main_modules import module1
from main_modules import module2
发生错误:-
Traceback (most recent call last):
File "c:\Users\amuly\AppData\Local\Programs\Python\PyProgs\Test package\main package\mainfile.py", line 1, in <module>
from main_modules import module1
File "c:\Users\amuly\AppData\Local\Programs\Python\PyProgs\Test package\main package\main_modules\module1.py", line 1, in <module>
from module2 import wish
ModuleNotFoundError: No module named 'module2'
这是问题的截图:-
Screen Shot
我已经搜索了各种相关问题并尽了最大努力,但还是不行
由于 module1
和 module2
处于同一包级别,您可以在 module1.py
:
中简单地执行此操作
from module2 import wish
要从 mainfile.py
导入 module2.wish
,您可以这样做:
from main_modules.module2 import wish
编辑 - 在 module1.py
中,将导入语句更改为:
from main_modules.m2 import wish
使用 main_modules.m2
会有所帮助,因为函数调用是从 mainfile.py
发生的。因此,随后调用的文件中的导入语句将查看相对于 mainfile.py
的导入。我希望这是有道理的。
您必须删除 from .module2 import wish
中的 .
,因为它们处于同一包级别(正如@Sindhu Satish 已经指出的那样)。
在您的 module1.py
文件中,您必须将导入语句更改为:from module2 import wish
才能正常工作。
希望能帮到你!
我的包树如下:-
My_package
|
+--__init__.py (empty)
+--mainfile.py
+--main_modules
|
+--__init__.py (empty)
+--module1.py
+--module2.py
模块2的内容:-
class Wish:
def greatings(self):
print("Hello World!")
wish = Wish()
当我尝试从模块 1 中的模块 2 导入愿望时:- 模块1的内容:-
from module2 import wish
没有错误。
但是当我在 mainfile.py 中导入两个模块时, mainfile.py的内容:-
from main_modules import module1
from main_modules import module2
发生错误:-
Traceback (most recent call last):
File "c:\Users\amuly\AppData\Local\Programs\Python\PyProgs\Test package\main package\mainfile.py", line 1, in <module>
from main_modules import module1
File "c:\Users\amuly\AppData\Local\Programs\Python\PyProgs\Test package\main package\main_modules\module1.py", line 1, in <module>
from module2 import wish
ModuleNotFoundError: No module named 'module2'
这是问题的截图:- Screen Shot
我已经搜索了各种相关问题并尽了最大努力,但还是不行
由于 module1
和 module2
处于同一包级别,您可以在 module1.py
:
from module2 import wish
要从 mainfile.py
导入 module2.wish
,您可以这样做:
from main_modules.module2 import wish
编辑 - 在 module1.py
中,将导入语句更改为:
from main_modules.m2 import wish
使用 main_modules.m2
会有所帮助,因为函数调用是从 mainfile.py
发生的。因此,随后调用的文件中的导入语句将查看相对于 mainfile.py
的导入。我希望这是有道理的。
您必须删除 from .module2 import wish
中的 .
,因为它们处于同一包级别(正如@Sindhu Satish 已经指出的那样)。
在您的 module1.py
文件中,您必须将导入语句更改为:from module2 import wish
才能正常工作。
希望能帮到你!