gpt4 book ai didi

python - 从包中导入所有模块

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

我有一个包含多个模块的 Python 包。

我能做什么:

通过修改包的 __init__.py 并导入其中的所有模块,可以在我的程序中使用包中的所有模块:

#__init__.py
import module1
import module2

然后我只需在程序中导入包,就可以通过全名访问所有模块中的类/函数

#My program
import package
a = package.module1.A()

问题:

有什么方法可以自动将导入添加到 __init__.py 中,这样我就不需要手动指定它们?

最佳答案

这是另一个可能更接近您想要的答案。

__init__.py中,您可以添加此内容以导入包中的所有Python文件。

Note that it doesn't do packages.. not sure how. And I'm using windows

from os import listdir
from os.path import abspath, dirname, isfile, join
# get location of __init__.py
init_path = abspath(__file__)
# get folder name of __init__.py
init_dir = dirname(init_path)
# get all python files
py_files = [file_name.replace(".py", "") for file_name in listdir(init_dir) \
if isfile(join(init_dir, file_name)) and ".py" in file_name and not ".pyc" in file_name]
# remove this __init__ file from the list
py_files.remove("__init__")

__all__ = py_files

关于python - 从包中导入所有模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23091581/

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