我对进口有疑问.这个问题似乎有点人为,但其目的是探讨在包中使用绝对导入对所有导入的限制. PEP8强烈反对相对导入(编辑:Google Python样式指南说永远不要使用它们).
假设您有两个大型包,它们都具有相同的名称,并且都根据PEP8使用绝对导入:
/pkg1 mod1.py (contains an absolute import: 'import pkg1.mod2') mod2.py ... /pkg1 mod1.py (contains an absolute import: 'import pkg1.mod3') mod3.py ...
还要说你正在开发一个你想要使用这两个包的Python项目.例如,如果您想在项目中使用同一个包的两个版本,就会出现这种情况.
有没有办法将两个包合并到项目层次结构中,以便您可以在整个项目中自由使用两个包中的模块?
对于解决方案,可以使用导入别名和临时修改sys.path等操作.但是改变任一包目录的内容都是不可取的.