Python 与子流程的相对导入

Python 与子流程的相对导入,python,import,subprocess,relative-path,Python,Import,Subprocess,Relative Path,Python2用户在这里 我试图在python子流程(即使用python子流程包调用的流程)中执行相对导入,这自然会因“在非包中尝试相对导入”而失败。之所以会发生这种情况,是因为python脚本将作为主执行,因此相对导入失败。我想知道有没有办法解决这个问题 以下是文件结构: python程序驱动程序/ 子流程1/ /助手1 /脚本1 子流程2/ /助手2 /脚本2 数据/ script2需要调用helpers1中的函数。但它无法导入该函数。我尝试了“from.subprocess1 import

Python2用户在这里

我试图在python子流程(即使用python子流程包调用的流程)中执行相对导入,这自然会因“在非包中尝试相对导入”而失败。之所以会发生这种情况,是因为python脚本将作为执行,因此相对导入失败。我想知道有没有办法解决这个问题

以下是文件结构:

python程序驱动程序/
子流程1/
/助手1
/脚本1
子流程2/
/助手2
/脚本2
数据/

script2需要调用helpers1中的函数。但它无法导入该函数。我尝试了“from.subprocess1 import helpers1”,但出现了“尝试相对导入…”错误


有什么帮助吗?谢谢

您可以尝试使用
python-mscript.py
运行脚本,但最好的解决方案可能是重新构造您的项目,这样您就不必一开始就这样进行导入。所以我可以将其作为子进程打开,但使用-m标志?关于如何用多个子进程最佳地构造python项目,有哪些好的资源?谢谢对你的第一个问题:是的。对于其他人来说,这完全取决于你的具体需求。总有这样的情况——尽管令人沮丧,但它可以作为最终的退路。建议的设计是只执行顶级脚本,而根据需要导入更深层的内容。如果您需要执行子流程路由,那么
python-m
方法可能是最好的方法,但是可以考虑切换到导入函数的线程化/多处理调用。