我深入包裝Python應用程序的世界,並設法進入這種混亂狀態,因爲我應該處理的所有概念和選項,我的頭開始旋轉。distutils,distutils2,點和要求
問:
我需要做什麼來實現?從位於git服務器上的源部署我的Python項目。部署工具應該獲取並安裝所有依賴項,其中大部分依賴項都可以通過PIP獲得,並且需要通過Git來獲取和安裝。最終的結果應該是通過皮普安裝,所以我可以做一些事情如:
[~] git clone git://some/path/project.git
[~] pip install project/
語境: 目前,我試圖讓Distutils2做我想做什麼,但似乎setup.py使用國產'generate-setup'命令不會與Pip一起播放。
我想使用Distutils2,因爲它應該是所有的未來證明。但是所有工具的各種文檔都很糟糕(準確的信息混雜着過時和不準確的信息),這使得一個人質疑他的理智。
那我該怎麼辦?堅持distutils和setup.py?或者我需要看看Buildout之類的東西嗎?
請問類似的回答者請列出我應該用特定工具做的事情(例如:使用Distutils2部署代碼,使用PIP安裝依賴項,爲git依賴項編寫腳本並將所有內容粘在一起做XYZ)。
編輯:我正在使用Distutils2 1.0a4,這似乎與文檔不兼容。
編輯2:重新格式化問題,使其更清楚我的問題是什麼。
Edit3:這是我第四次打破Python的打包和分發工具鏈。我並不想讓其他人爲我做我的工作,但是對於一個新手來說,要破解一個特定的工具應該做什麼,哪裏開始,哪裏結束,幾乎是不可能的。尤其是因爲這些工具之間的功能重疊。我不是位於由聖人包圍的硅谷,他們可以啓動我的祕密,公開可用的文件是沒有用的。
最終編輯: 雖然我並沒有真正考慮在開始此問題時用Buildout替換virtualenv。但是在做我的研究的同時,我意識到了一些我一直都知道的事情,但只是完全沒有透露給我。有關Python打包和部署自動化的許多方法。還有很多工具可以幫助你完成任務。然而,雖然這些工具之間存在重大的功能重疊,但工具鏈還在不斷髮展,迄今爲止還沒有明確的「標準最佳實踐」。分銷工具鏈的軍備競賽仍然十分熱烈,尚未出現明確的勝利者。這可能會讓我們的noobs感到困惑,他們認爲Python中的大部分內容都適用。我所追求的(distutils/setuptools + pip + virtualenv以Buildout的方式,或者甚至與Buildout的半集成)當然是可行的,但它沒有多大意義,不是因爲它不可能 - 而是因爲沒有人能做到。如果你需要這種複雜程度,那麼你需要承諾。就我個人而言,我決定將virtualenv放在後面(對於這個項目),並且擁抱Buildout。
即使它不是我真正想要的東西,你的鏈接集合在最終清除關於構建的頭腦中的空洞。謝謝。 – JanezStupar