2009-08-11 75 views
5

這與this question有些相關。假設我有一個我想通過rpm進行部署的軟件包,因爲我需要在安裝後進行一些文件複製,並且我有一些我想聲明的非python依賴關係。但是讓我們也說我有一些在PyPI中很容易獲得的python依賴關係。看起來好像我只是把它打包成一個雞蛋,一個解壓後跟着python setup.py install會自動照顧我的python依賴項,代價是失去了任何安裝後的功能和非python依賴項。使用setuptools進行安裝後和python依賴關係

有沒有推薦的方法來做到這一點?我想我可以在一個預先安裝的腳本中指定這個,但那時我正在進入信息重複,並沒有真正使用setuptools來做任何事情。

(我目前的設置是傳遞install_requires = ['dependency_name']setup,該協會致力於python setup.py bdist_eggunzip my_package.egg; python my_package/setup.py install,但不適用於python setup.py bdist_rpm --post-install post-install.shrpm --install my_package.rpm。)

回答

7

我認爲這將是最好的,如果你的Python的依賴是可利用的RPM也和在RPM中聲明爲依賴關係。如果他們不在其他地方可用,請自己創建它們,並將它們放入您的yum存儲庫。

運行PyPI安裝作爲RPM安裝的一個副作用是邪惡的,因爲它不支持正確的卸載(即卸載您的RPM將刪除您的軟件包,但將相關性留在後面,沒有適當的刪除過程)。

+0

除非我寫出相應的卸載腳本,這更是重複。好決定。 – 2009-08-11 19:28:03