将子文件夹打包成Python发行版
项目描述
将子文件夹打包成Python发行版
免费软件:Apache软件许可证2.0
安装
pip install setuptools-build-subpackage
您也可以使用以下命令安装开发中的版本:
pip install https://github.com/ashb/setuptools-build-subpackage/archive/master.zip
使用方法
此发行版包含setuptools的Distribution子类,旨在将“子模块”作为独立发行版进行构建。
它旨在与setuptools的声明性配置一起使用 - 即所有内容都在setup.cfg中定义,而不是在setup.py中
例如,以下布局
├── example │ ├── __init__.py │ ├── sub_module_a │ │ ├── __init__.py │ │ ├── setup.cfg │ │ └── where.py │ └── sub_module_b │ ├── __init__.py │ ├── setup.cfg │ └── where.py └── setup.cfg
这假设我们想要将example.sub_module_a和example.sub_module_b包含在主发行版中,而不是作为单独的发行版发布到PyPI。
这组类确保以下内容
顶级setup.cfg没有加载,而是只加载从子包指定的一个
build/文件夹对于每个子包都保持清洁,因此一个构建的文件不会泄漏到另一个中
setup.cfg在子文件夹中存在于构建的sdist中,这意味着它可以正常安装。
包括一个stub setup.py文件,以便与较旧的安装程序兼容
配置您的主发行版
首先,您应该排除子包被包含在您的main dist中
setup(
...
packages=find_packages(exclude=['example.sub_module_*'])
)
或者
[options.packages.find]
exclude =
example.sub_module_*
为您的子包创建一个setup.cfg
子包的要求和信息都来源于setup.cfg - 目前不支持sub-setup.py。 (包含在sdist中的setup.py总是会被生成。如果您需要其他功能,欢迎提交PR。)
在源代码中查看example/sub_module_a/setup.cfg以获取最小示例。
所有文件路径和模块名称都是绝对路径,而不是相对于setup.cfg文件的相对位置。
构建sdist/bdist
运行以下命令
python -m setuptools_build_subpackage \
--subpackage-folder example/sub_module_b \
sdist \
bdist_wheel
这将在dist中创建一个.tar.gz和.whl文件
包含许可注释
如果您需要在生成的setup.py中包含许可注释,请将--license-template选项传递给sdist
python -m setuptools_build_subpackage \
--subpackage-folder example/sub_module_b \
sdist --license-template ./LICENSE \
bdist_wheel
此参数应是一个纯文本许可文件的路径,该文件将被包含在生成的文件的顶部,每行前面都有一个Python注释。
开发
要运行所有测试,请运行
pip install -e '.[devel]' && pytest
还建议您安装pre-commit来检查风格规则
变更日志
1.0.0 (2021-04-23)
在PyPI上的首次发布。
项目详情
setuptools-build-subpackage-1.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2f09fd5b5b543d5c063151439d845cd3fb4f67b3426204625301d6f28ca8f26a |
|
MD5 | d050ddd9200405d0da942782da01ada9 |
|
BLAKE2b-256 | 2f26c454a7b72563ce362a9ff5d29aa8b809154ec19cf45f792cc261acec0012 |
setuptools_build_subpackage-1.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5bc5b58769bc91b785ae9bd9e660859843736633703f771bbdc064f660232770 |
|
MD5 | f3581222896c885f2a02b18ccb69771d |
|
BLAKE2b-256 | 02b38d13066de3e54ea9282bc8c8c6abf10ed49d3632a9c537966037a2d543f6 |