我想用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得到它,那麼這將是跨平臺解決方案。