我有一个带有子包装的包装。导入程序包时,我想动态地将其中一个子程序包用作固定名称。我该怎么做呢?
/package
__init__.py
/subpackage1
__init__.py
/subpackage2
__init__.py
从外部,我希望能够执行
from package import subpackage
,并且包中的__init__.py
根据环境变量将正确的子包(1或2)用作package.subpackage。编辑:我特别想使用
importlib.import_module()
来执行此操作,因为我需要将一个字符串提供给子包路径。 最佳答案
您只需要在package/__init__.py
中将正确的子包导入为subpackage
。
import importlib
import os
if os.environ.get('MY_ENV_VAR', None): # Check your env condition here
pkg = '.subpackage1'
else:
pkg = '.subpackage2'
subpackage = importlib.import_module(pkg, __name__)
关于python - 使用importlib提升python子包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44163408/