Kon*_*tin 5 python import package
我有一个包含多个模块的 Python 包。
我可以做什么:
通过修改包、导入其中的所有模块,可以在我的程序中使用包__init__.py中的所有模块:
#__init__.py
import module1
import module2
Run Code Online (Sandbox Code Playgroud)
然后我只需在程序中导入包,就可以通过全名访问所有模块中的类/函数
#My program
import package
a = package.module1.A()
Run Code Online (Sandbox Code Playgroud)
问题:
有没有什么方法可以自动添加导入,__init__.py这样我就不需要手动指定它们?
这是另一个可能更接近您想要的答案。
您可以添加此命令__init__.py来导入包中的所有 python 文件。
请注意,它不做包裹..不知道如何做。我正在使用 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
Run Code Online (Sandbox Code Playgroud)