Python 有没有办法动态更改子模块名称

Python 有没有办法动态更改子模块名称,python,python-3.x,python-packaging,Python,Python 3.x,Python Packaging,我有一堆代码生成的文件: parent/ a.py b.py <...> aa.py 我想将整个父级子目录包含到另一个项目中,以便生成的树如下所示 project/ main.py parent/ a.py b.py <...> 那么,您可以通过运行import sys来操作导入机制;sys.path.append('path/to/project/parent')作为发生任何其他事情之前的第一行代码。或者类似地 但是这

我有一堆代码生成的文件:

parent/
  a.py
  b.py
  <...>
  aa.py
我想将整个
父级
子目录包含到另一个项目中,以便生成的树如下所示

project/
  main.py
  parent/
    a.py
    b.py
    <...>

那么,您可以通过运行
import sys来操作导入机制;sys.path.append('path/to/project/parent')
作为发生任何其他事情之前的第一行代码。或者类似地

但是这种黑客虽然现在就可以解决你的问题,但在不久的将来会使事情变得更难解决。例如,您的IDE不会意识到这一点,并且会不断警告您的文件不可导入,并且在运行应用程序、测试套件、包生成器或文档生成器时,可能很难断言路径设置正确


这就是为什么,正如您在评论中所指出的,如果
a.py
显示为
a
(对于现有的.py文件),最好将
parent
转换为适当的包,并将子模块路径更新为
import.b as b_uuuu
,或者将
从parent import b as b_uuu
导入和
parent.a
(对于新项目中的新内容),就python而言,这是两个不同的模块和两个不同的名称空间。我看到了你的未来……是的,我希望有一种方法可以欺骗加载程序来处理
parent/
中的所有内容,让他们认为自己在不同的名称空间中。正确的方法是将所有的
parent
发布为一个合适的python模块。
project/
  main.py
  parent/
    a.py
    b.py
    <...>
import .b as b__