gpt4 book ai didi

Python:如何使用相对导入来导入包根目录

转载 作者:行者123 更新时间:2023-11-30 23:30:16 25 4
gpt4 key购买 nike

我在 python 包的顶级 __init__.py 中定义了大量名称。我想使用相对导入来导入此命名空间,因为我不一定知道运行时的包名称(它甚至可能用作其他包的子包)。例如,采用以下包:

my_package/
__init__.py
a = 1
b = 2
...
my_module.py
from . import ??? as my_package
print(my_package.a)

如何修复 my_module 中的 import 语句以使 print 语句正常工作?我也宁愿避免 from 。导入a,b,...;我只想将整个包命名空间作为一个变量导入。

我已经尝试过来自 . import __init__ as my_package,但在这种情况下,my_package 被导入为方法包装器,而不是模块。我还尝试过 my_module = __import__(__package__),它仅在 my_package 不是子包的情况下有效。

似乎应该有一个简单的答案..

最佳答案

您可以使用__package__来了解包名称,以及importlib.import_module ;这适用于子包。

import importlib
pkg = importlib.import_module(__package__)
print(pkg.a)

关于Python:如何使用相对导入来导入包根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20726736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com