【问题标题】:How to I change the Manifest.in depending on the extra_requires I wish to use?如何根据我希望使用的 extra_requires 更改 Manifest.in?
【发布时间】:2018-01-10 15:56:06
【问题描述】:

我的问题是,我正在处理的一个项目附带了重现其结果所需的所有训练数据。我希望默认安装 (pip install package) 包含所有这些内容,但特定安装 (pip install package[train_only]) 不包含。

我想瘦下来的两种方法是:

  1. 对于默认和 train_only 版本具有不同的清单,其中默认清单更具包容性,并且

  2. 每个都有不同的 install_requires,其中默认值更具包容性。

我知道如何使用 extra_requires 安装 extra 东西,但我如何安装更少?

【问题讨论】:

  • [extras] 语法用于包含额外的内容。我不认为你可以用它来减去东西。
  • 这很不幸,但有道理。有没有办法做有条件的manifests?此外,相关:有没有办法从 setup.py 内部访问括号中的内容?我可以针对不同的情况运行不同的设置函数。
  • 也许这个问题可以帮助你:stackoverflow.com/questions/19096155/…

标签: python pip setuptools


【解决方案1】:

distribution[extras] 语法仅用于为可选功能指定额外的依赖项,这通常意味着收集要安装的其他发行版。您不能使用此功能以任何方式控制包数据。

distutils 和 setuptools 不支持条件 MANIFEST.in 和/或包数据。您最好的选择是为自定义安装后脚本创建挂钩。

如果您愿意考虑改用“附加”安装模型来获取额外数据,那么您有一个更好的选择:

pip install mypackage           # to install without extra training data stuff
pip install mypackage[mystuff]  # to install with extra training data stuff

然后您将创建一个单独的分布mystuff,其中将包含所需的所有训练数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 2015-12-23
    • 2020-07-02
    • 2021-11-12
    • 2022-10-17
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多