2010-12-22 65 views
1

我想用setuptools做一个可分配的蛋,我的程序依赖于wget存在,这显然在PyPi中不可用。我有一个小脚本来检查wget的存在,要求用户安装它,并在未安装时返回-1,或者如果安装它,则返回0。如何使用python setuptools指定完成安装的条件

我想完成我的程序的安装,只有当我的wget检查脚本返回0.我怎样才能用setuptools来做到这一点?

回答

0

根据你需要wget,你有没有考虑在python中使用urllib或urllib2模块编写自己的wget-equivalent?然后,您将拥有跨平台和受您控制的东西,并且您将打破对wget的依赖。看看urlretrieve方法。

1

在您调用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得到它,那么这将是跨平台解决方案。