我试图将我的代码库重新组织成一个适当的Python包(带有子包),准备好上传到PyPI。我有以下目录(用于测试):
Py6S/
__init__.py
test.py
Params/
__init__.py
AeroModel.py
AeroModel.py包含:
class AeroModel:
NO_AEROSOL=0
CONTINENTAL=1
MARITIME=2
URBAN=3
USER=4
DESERT=5
BIOMASS_BURNING=6
STRATOSPHERIC=7
Py6S init .py包含:
__all__ = ["Params"]
Params init .py包含:
__all__ = ["AtmosModel", "AeroModel", "AtmosCorr"]
然而,当我from Py6S import *
时,我可以参考Params,但不能参考AtmosModel或AeroModel。
我希望能够输入from Py6S import *
并使用所有AeroModel,AtmosModel,AtmosCorr等,而无需在其前面放置任何模块名称。
答案 0 :(得分:1)
如果Py6S的__init__.py
有from Params import *
:
你需要这样做:
import Params
__all__ = ["Params"]
from Params import *
__all__ += Params.__all__
将这些添加到Py6S的__all__