2010-11-22 26 views
1

上週五,我爲我的Django項目構建了一個RPM規範。 RPM創建一個virtualenv,通過pip下載依賴關係,並將所有內容放入包中。今天,我發現BeautifulSoup 3.2已經發布。幸運的是,我有我的BeautifulSoup版本固定在requirements.txt中,所以我發現因爲構建失敗。如何在不升級到每個上游版本的情況下使用基於virtualenv的部署方法?

現在一個完全不同的問題是:我該如何避免將來升級內容? BeautifulSoup從PyPI刪除了所有以前的版本,所以我無法下載我實際測試過的版本。 pip的下載緩存在這裏也沒有幫助,因爲pip總是試圖首先檢查PyPI。

你能推薦一些東西來避免這種情況嗎?

回答

2

首先,這是一種不尋常的情況。我從來沒有見過其他軟件包像BeautifulSoup那樣去除所有舊版本。我認爲這是一種用戶敵對的行爲,除非是在嚴重的安全性問題的情況下。

也就是說,如果您想要使用pip進行可靠的構建過程,那麼您確實需要鏡像您在本地依賴的所有包。這並不難;您可以使用pip的--download選項(或您現有的pip緩存)來獲取所有軟件包tarball,然後將它們轉儲到索引的web供應目錄中,並在需求文件中使用--find-links指向pip(加上--no-index來告訴它不要使用PyPI)。

+0

可能會這樣做,或者可能是「本地點光」 - 只是保持拉鍊。謝謝。 – 2010-11-22 17:42:25

相關問題