构建pip包时访问子目录中的模块



这是我目前的项目结构;

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__.pypackage_name/subdir/__init__.py

  • 使用Distutils编写安装脚本

最新更新