这是我的文件夹结构:
main.py
tools/
sub1.py
sub2.py
其中main.py:
import tools.sub1
import tools.sub2
和sub1py:
a = 'abc'
和sub2.py(直接导入sub1不起作用,是因为我从根目录运行main.py吗?(:
import tools.sub1
print(tools.sub1)
从这里开始,我知道为了正确地从main调用sub1、sub2,我们必须在sub2中添加导入工具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。提前谢谢。
您可以使用python -m tools.sub2
运行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