【问题标题】:How to distribute specific files using setuptools?如何使用 setuptools 分发特定文件?
【发布时间】:2019-08-05 17:56:57
【问题描述】:

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

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

我可以通过packages=find_packages(exclude=("conans.test*",)) 轻松排除模块。但是,我不能动态分发它。

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

pip install package[test]

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

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

是否可以使用 setuptools?

问候!

【问题讨论】:

  • solution 按照这个解决方案,通过 jathanism,创建一个做你想做的事情的类,并为该任务在 cmdclass 中创建一个 cli 参数
  • 一个包是原子的,不能再进一步缩减。将您的项目分成两个区域,conansconans_tests(可选地,conans 是一个命名空间包)。 Extras 仅用于减少依赖项集,而不是要安装的代码库。

标签: python pip setuptools


【解决方案1】:

感谢hoefling

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 2014-09-15
    • 2010-10-04
    • 1970-01-01
    相关资源
    最近更新 更多