我在 folder2 试图执行trigger.py
我用了:
from ..folder1.subfolder1.function1 import *
from ..folder1.test.py
在没有已知父包的情况下尝试相对导入时出错
我在 folder2 试图执行trigger.py
我用了:
from ..folder1.subfolder1.function1 import *
from ..folder1.test.py
在没有已知父包的情况下尝试相对导入时出错
如果您用完了folder2
,那么出于所有实际目的,trigger.py
它本身就是一个模块,而不是包层次结构的一部分,并且不能使用相对导入folder1
(因为它们不相关)。
如果可以,请将您的工作目录设为 的父目录Project
,并使用以下命令调用您的脚本:
python3 -m Project.folder2.trigger
它通过导入语法将模块作为主要入口点运行,而不会丢失有关包结构的信息。
如果整个项目实际安装到 system 或 user site-packages
,则您的工作目录无关紧要(仅当它不是sys.path
自动安装时才需要,因为工作目录本身包含在 中sys.path
),并且调用将在任何地方工作。