我想用setuptools做一个可分配的蛋,我的程序依赖于wget存在,这显然在PyPi中不可用。我有一个小脚本来检查wget的存在,要求用户安装它,并在未安装时返回-1,或者如果安装它,则返回0。如何使用python setuptools指定完成安装的条件
我想完成我的程序的安装,只有当我的wget检查脚本返回0.我怎样才能用setuptools来做到这一点?
我想用setuptools做一个可分配的蛋,我的程序依赖于wget存在,这显然在PyPi中不可用。我有一个小脚本来检查wget的存在,要求用户安装它,并在未安装时返回-1,或者如果安装它,则返回0。如何使用python setuptools指定完成安装的条件
我想完成我的程序的安装,只有当我的wget检查脚本返回0.我怎样才能用setuptools来做到这一点?
根据你需要wget,你有没有考虑在python中使用urllib或urllib2模块编写自己的wget-equivalent?然后,您将拥有跨平台和受您控制的东西,并且您将打破对wget的依赖。看看urlretrieve方法。
在您调用setup.py中的setup()
方法之前,您可以检查wget是否存在,如果不存在,那么您可以退出时提示您需要wget作为软件的依赖项。
if __name__ == '__main__':
# Check for wget
if sys.platform == 'linux2' and not ((os.path.exists('/usr/bin/wget') or os.path.exists('/usr/local/bin/wget')):
sys.exit("You need wget binary for this software to work")
# setup code
setup(name='yoursoftware',
version='42',
data_files = [ # All your setup details
(script_install_location, ['somescript.py']),
)
至于其他的海报解释,如果你能做到无论你是想不wget的 并通过urlretrieve方法的urllib得到它,那么这将是跨平台解决方案。