首页 > 解决方案 > 如何使用 setuptools 分发特定文件?

问题描述

我想使用我的 setup.py 分发一个 python 包,用户可以在其中选择要安装的模块。

就我而言,我有测试模块,它仅在少数情况下有用,因此分发该模块没有意义。

我可以很容易地排除模块 packages=find_packages(exclude=("conans.test*",))。但是,我无法动态分发它。

我的想法是,打包所有文件,但只根据 pip 命令安装。我想安装测试模块,只有在配置了额外的时:

pip install package[test]

否则,它不会安装测试模块。

当我说测试模块时,它是指包含所有这些测试的文件夹,而不是 requirements_test.txt 文件。

是否可以使用 setuptools?

问候!

标签: pythonpipsetuptools

解决方案


感谢hoefling

由于可以创建一个动态包,我发现最好的方法是在安装包后运行一个脚本:

https://github.com/uilianries/conan-ldap-authentication/blob/master/setup.py#L40


推荐阅读