5

我有一个使用dateutil包索引的程序。我想让 setup.py 检查它的存在,easy_install如果它不存在则尝试使用它。

for 的文档distutils似乎表明这可以使用requires关键字 in来完成setup(),但是当我尝试时,它会安装在系统上而dateutil不会发出警告或安装所需的软件包。

我在谷歌上唯一能找到的是这篇关于同样问题的博客文章,也没有任何答案。

我用distutils错了吗?我是否需要子类distutils.command.install化并自己进行检查/安装?

4

2 回答 2

4

自动下载依赖项是setuptools引入的一项功能,它是第三方插件distutils,特别是install_requires它添加的参数。有关详细信息,请参阅setuptools 文档

另一种选择是将requirements.txt文件与pip一起使用,而不是easy_install用作包安装程序。 pip现在已成为推荐的安装程序;有关更多信息,请参阅Python 打包用户指南

更新 [2015-01]:此答案的先前版本指的distributesetuptools. 此后,该distribute分叉已合并回一个较新的活动setuptools项目中。 distribute现在已经死了,不应该再使用了。 现在非常积极地维护并支持 Python 3 setuptoolspip

于 2012-05-23T04:04:27.310 回答
0

来自 distutils 的 setup 函数中的参数install_requires对我很有效,只有当我创建 sdist 分配时,例如:python setup.py sdist

于 2013-05-19T15:27:24.027 回答