这是我目前的项目结构;
repository/
|---- setup.py
|---- package_name/
|---- __init__.py
|---- module_a.py
|---- subdir/
|---- __init__.py
|---- module_b.py
我将其与pip install .
一起安装,并保留存储库文件夹。现在,当我尝试导入这个包时,我可以访问module_a
,如下所示;
from package_name.module_a import ma
然而,在运行下面的代码时,我得到了ModuleNotFoundError: No module named 'package_name.subdir'
;
from package_name.subdir.module_b import mb
有人能解释一下我如何在子目录中公开模块,以便从包中导入它们吗?我计划将包上传到PyPI。
如果有帮助的话,这就是存储库链接
据我所知,您也可以通过在子目录中添加一个__init__.py
文件来解决它,这样它就被视为一个子模块。
在设置中设置packages = ['package_name', 'package_name.subdir']
。py告诉Distutils查找package_name/__init__.py
和package_name/subdir/__init__.py
- 使用Distutils编写安装脚本