Python 动态创建子包

Python 动态创建子包,python,package,Python,Package,是否可以动态创建包,例如: subpackage = create_subpackage(package_name, package_path) 包应该与物理路径相关联,以便可以通过该路径导入该路径中的模块 这样做的目的是能够使子包不是其父包的子目录 e、 g main\u package/\uuuu init\uuuu.py的内容: sub_package = create_subpackage("sub_package", "/a/path/to/sub_package") globals

是否可以动态创建包,例如:

subpackage = create_subpackage(package_name, package_path)
包应该与物理路径相关联,以便可以通过该路径导入该路径中的模块

这样做的目的是能够使子包不是其父包的子目录

e、 g

main\u package/\uuuu init\uuuu.py的内容

sub_package = create_subpackage("sub_package", "/a/path/to/sub_package")
globals()["sub_package"] = sub_package
一些随机脚本.py的内容

from main_package.sub_package import some_module

虽然这无法提供您所要求的确切布局,但这可能会有所帮助:

基本上,每个包都有一个
\uuuuuuuuu路径
属性,该属性包含用于搜索子模块的位置列表。你可以根据自己的喜好修改它

e、 g

如果这还不能解决问题,您可以继续阅读,这是一种修改Python导入行为的强大(且相应复杂)方法

from main_package.sub_package import some_module
main_package/__init__.py:

    __path__ += ['/tmp/some/other/path/']

/tmp/some/other/path/sub_package/__init__.py:

    value = 42

test.py:

    from main_package.sub_package import value
    print value