我创建了一个名为 myutils 的模块。这是我使用的文件结构:
./mypackages
./mypackages/myutils
./mypackages/myutils/util1.py
./mypackages/myutils/util2.py
./myexecs
./myexecs/user_executable1.py
我正确设置 PYTHONPATH=./
在./myexecs/user_executable1.py我可以轻松使用utils:
from my_packages import myutils
myutils.util1.func1()
在 util1.py 中,我可以使用 util2.py:
from . import util2
util2.func2()
当我希望将 util1.py 直接用作主要入口点时,就会出现问题。它有一个
if __name__ == "__main__": main()
入口点,但如果我直接执行它,它无法导入 util2(from . import util1失败)。
如果我使用它执行它确实会成功 python -m mypackages.myutils.util1
知道如何让 util1 使用它的兄弟姐妹导入from . import ... 并且能够直接从 cmd 执行它而不将它作为模块执行吗?
Helenr
相关分类