Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何要求并安装使用Python3.x distutils的软件包?_Python_Python 3.x_Distutils - Fatal编程技术网

如何要求并安装使用Python3.x distutils的软件包?

如何要求并安装使用Python3.x distutils的软件包?,python,python-3.x,distutils,Python,Python 3.x,Distutils,我有一个使用包索引中的dateutil的程序。我想让setup.py检查它是否存在,如果不存在,请尝试使用easy\u install获取它 似乎表明可以使用setup()中的requires关键字来完成此操作,但当我尝试时,它安装在没有dateutil的系统上,而不会发出警告或安装所需的包 我能在谷歌上找到的唯一一件事就是它也没有任何答案 我是否使用了distutils错误?我是否需要为distutils.command.install创建子类并自己检查/安装?自动下载依赖项是一项引入的功能,

我有一个使用包索引中的
dateutil
的程序。我想让setup.py检查它是否存在,如果不存在,请尝试使用
easy\u install
获取它

似乎表明可以使用
setup()
中的
requires
关键字来完成此操作,但当我尝试时,它安装在没有
dateutil
的系统上,而不会发出警告或安装所需的包

我能在谷歌上找到的唯一一件事就是它也没有任何答案


我是否使用了
distutils
错误?我是否需要为
distutils.command.install创建子类并自己检查/安装?

自动下载依赖项是一项引入的功能,它是
distutils
的第三方附加功能,尤其是它添加的参数。有关更多信息,请参阅

另一种选择是将file与一起使用,而不是将
easy\u install
用作软件包安装程序
pip
现在已成为推荐的安装程序;有关更多信息,请参阅


更新[2015-01]:此答案的前一版本提到了
设置工具的
分发
分支。此后,
distribute
fork被合并回一个较新的活动
setuptools
项目中<代码>分发
现在已失效,不应再使用
setuptools
pip
现在得到了非常积极的维护并支持python3

distutils的setup函数中的参数
install\u requires
对我来说很好,只要我创建了sdist distributive,比如:
python setup.py sdist

distutils中的requires参数不可用且未使用,在PEP 345被广泛使用之前,您必须使用pip需求文件或setuptools的install_requires参数(它使install_requires得到正式支持,新名称为requires dist;distutils2支持它)。注意:此注释已过时;分发和设置工具已合并。Setuptools现在有了完整的3.x支持。@Kevin,谢谢提醒;自从最初的答案写好后,情况发生了很大的变化。我已经更新了答案,以反映世界的一种更为当前的状态:Distribute和setuptools的合并,distutils2开发的结束,pip作为官方Python包安装程序的祝福,新的
Python打包用户指南
install\u requires
不是
distutils.core.setup
的参数,因此您需要使用@Ned前面提到的
setup
的分发版本。您还可以在python中查看。