如何根据我想使用的extra_require更改Manifest.in?

时间:2018-01-10 15:56:07

标签: python pip setuptools

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

我希望减少它的两种方式是:

  1. 为默认和train_only版本提供不同的清单,其中默认清单更具包容性,

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

  3. 我知道如何使用extra_requires安装额外内容,但如何安装更少?

1 个答案:

答案 0 :(得分: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,其中包含所需的所有培训数据。

相关问题