我有一堆代码生成的文件:
parent/
a.py
b.py
<...>
aa.py
它们相互导入,假设它们是它们所在包的根
例如a.py
:
import b as b__
我想将整个parent
子目录包含到另一个项目中,以便生成的树如下所示
project/
main.py
parent/
a.py
b.py
<...>
但是,上述树中父级中的所有内容都会出现相互导入的问题。除了进入a.py
,b.py
,…,并将所有绝对导入转换为相对导入之外,还有其他方法解决这个问题吗?e、 g.执行以下100次:
import .b as b__
Tags:
好的,您可以通过在其他任何事情发生之前运行} environment variable
import sys; sys.path.append('path/to/project/parent')
作为第一行代码来操作导入机制。或者类似地,set the ^{但是这种黑客虽然现在就可以解决你的问题,但在不久的将来会使事情变得更难解决。例如,您的IDE不会意识到这一点,并且会不断警告您的文件不可导入,并且在运行应用程序、测试套件、包生成器或文档生成器时,可能很难断言路径设置正确
这就是为什么,正如您在评论中所指出的,最好将
parent
转换为适当的包,并将子模块路径更新为import .b as b__
或导入from parent import b as b__
相关问题 更多 >
编程相关推荐