Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.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
Python Setuptools setup.py在不满足依赖项时安装_Python_Setuptools_Distutils - Fatal编程技术网

Python Setuptools setup.py在不满足依赖项时安装

Python Setuptools setup.py在不满足依赖项时安装,python,setuptools,distutils,Python,Setuptools,Distutils,我有一个setup.py,它看起来有点像(好的,完全一样): #/usr/bin/env python 从设置工具导入设置 导入子流程 导入distutils.command.build\u py 类BuildWithMake(distutils.command.build\u py.build\u py): """ 使用make构建。 然后执行默认的构建逻辑。 """ def运行(自): #打电话。 子进程检查调用([“make”]) #继续安装Python的东西 distutils.comm

我有一个
setup.py
,它看起来有点像(好的,完全一样):

#/usr/bin/env python
从设置工具导入设置
导入子流程
导入distutils.command.build\u py
类BuildWithMake(distutils.command.build\u py.build\u py):
"""
使用make构建。
然后执行默认的构建逻辑。
"""
def运行(自):
#打电话。
子进程检查调用([“make”])
#继续安装Python的东西
distutils.command.build\u py.build\u py.run(self)
安装程序(name=“jobTree”,
version=“1.0”,
description=“集群的管道管理软件。”,
作者=“Benedict Paten”,
作者_电子邮件=”benedict@soe.ucsc.edu",
url=”http://hgwdev.cse.ucsc.edu/~benedict/code/jobTree.html“,
包=[“jobTree”、“jobTree.src”、“jobTree.test”、“jobTree.batchSystems”,
“jobTree.scriptTree”],
package_dir={“:”。“},
install_requires=[“sonLib”],
#钩住build命令,使其也使用make生成
cmdclass={“build_py”:BuildWithMake},
#在路径上的某个位置安装所有可执行脚本
脚本=[“bin/jobTreeKill”、“bin/jobTreeStatus”,
“bin/scriptTreeTest_Sort.py”、“bin/jobTreeRun”,
“bin/jobTreeTest_Dependencies.py”、“bin/scriptTreeTest_Wrapper.py”,
“bin/jobTreeStats”、“bin/multijob”、“bin/scriptTreeTest_Wrapper2.py”])
当使用
/setup.py install
运行时,它可以很好地安装软件包。但是,不管是否安装了“sonLib”包,它都会忽略依赖项

这是预期的行为吗?如果没有安装依赖项,是否应该愉快地进行
setup.py安装,让pip或其他人事先安装它们?如果没有,并且当缺少依赖项时,
setup.py安装
应该失败,我做错了什么

编辑:一些版本信息:

Python 2.7.2(默认,2012年1月19日21:40:50)
linux2上的[GCC 4.1.2 20080704(Red Hat 4.1.2-48)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入设置工具
>>>设置工具。\u版本__
“0.6c12”
>>> 
对依赖项一无所知。如果您正在运行它,那么不检查依赖项是正确的

不过,只需查看您在
setup.py
中显示的内容,您就可以使用Setuptools实现
setup
功能。声明运行
easy\u install
,这反过来会检查和下载依赖项


通过指定
install--single version externally managed

可以显式调用Distutils
install
,我很确定
setuptools
实际上不会检查依赖项。您可能希望改为使用。@murgatroid99d-distribute和setuptools已重新合并在一起。setuptools通常会安装依赖项。运行
pip install setuptools-U
获得0.9版本,我认为这一版本与distribute一样接受
install\U requires
选项。