python3模块的内部文件main()入口点

2024-06-09 18:47:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个名为myutils的模块。这是我使用的文件结构:

./mypackages
./mypackages/myutils
./mypackages/myutils/util1.py
./mypackages/myutils/util2.py
./myexecs
./myexecs/user_executable1.py

我正确地设置了PYTHONPATH=./

./myexecs/user_executable1.py中,我可以很容易地使用utils:

^{2}$

在util1.py中,我可以使用util2.py:

from . import util2
util2.func2() 

当我希望直接使用util1.py作为主入口点时,问题就出现了。它有一个

if __name__ == "__main__": main()

入口点,但如果我直接执行它,它将无法导入util2(from . import util1失败)。在

如果我使用python -m mypackages.myutils.util1执行它,它确实成功

你知道如何使用from . import ...让util1导入它的siblings,并且能够直接从cmd执行它,而不作为模块执行它吗?在


Tags: 模块文件frompyimportmain结构pythonpath
1条回答
网友
1楼 · 发布于 2024-06-09 18:47:24

只需在代码中的任何地方使用aboute import(from . import util2将是from mypackages.myutils import util2),并使用python -m myexecs.user_executable1运行exec,这样就很好了

相关问题 更多 >