Python 模块导入问题:不同位置的导入语句
Python modules import problem: import statement in different location
这是我的文件夹结构:
main.py
tools/
sub1.py
sub2.py
其中 main.py:
import tools.sub1
import tools.sub2
和sub1.py:
a = 'abc'
和sub2.py(直接import sub1不行,是不是因为我是从根目录运行ning main.py?):
import tools.sub1
print(tools.sub1)
从here,我知道为了从main中正确调用sub1,sub2,我们必须在sub2中添加语句import tools.sub1,但是,如果我想单独运行 sub2,就会出现错误
Traceback (most recent call last):
File "sub2.py", line 1, in <module>
import tools.sub1 as sub1
ModuleNotFoundError: No module named 'tools'
所以,我的问题是 是否有可能直接 运行 sub2 单独,同时保持我们可以正确 运行 main.py 的当前设计?。提前致谢。
您可以 运行 sub2 使用 python -m tools.sub2
有关使用 -m https://docs.python.org/3/using/cmdline.html#cmdoption-m
的更多信息
您可以通过将 tools
设为 python 模块来实现。在您的工具目录中添加一个 __init__.py
文件(可以为空)将使 Python 将“工具”文件夹视为一个模块。然后,您可以使用 main.py
和 sub2.py
引用 sub1
:
from tools import sub1
这是我的文件夹结构:
main.py
tools/
sub1.py
sub2.py
其中 main.py:
import tools.sub1
import tools.sub2
和sub1.py:
a = 'abc'
和sub2.py(直接import sub1不行,是不是因为我是从根目录运行ning main.py?):
import tools.sub1
print(tools.sub1)
从here,我知道为了从main中正确调用sub1,sub2,我们必须在sub2中添加语句import tools.sub1,但是,如果我想单独运行 sub2,就会出现错误
Traceback (most recent call last):
File "sub2.py", line 1, in <module>
import tools.sub1 as sub1
ModuleNotFoundError: No module named 'tools'
所以,我的问题是 是否有可能直接 运行 sub2 单独,同时保持我们可以正确 运行 main.py 的当前设计?。提前致谢。
您可以 运行 sub2 使用 python -m tools.sub2
有关使用 -m https://docs.python.org/3/using/cmdline.html#cmdoption-m
的更多信息您可以通过将 tools
设为 python 模块来实现。在您的工具目录中添加一个 __init__.py
文件(可以为空)将使 Python 将“工具”文件夹视为一个模块。然后,您可以使用 main.py
和 sub2.py
引用 sub1
:
from tools import sub1