2010-12-22 68 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得到它,那麼這將是跨平臺解決方案。