2014-08-28 56 views
0

可以說,當一個開發人員意識到他需要使用一些軟件包時,他正在開發一個項目。 他使用pip來安裝它。現在,在安裝完成後,開發人員會將其作爲依賴文件寫入requirements文件/ setup.py如何在整個項目中處理python依賴項?

如果他忘記寫下項目的所有依賴項(或者因爲他沒有很長時間沒有更好地瞭解,那該怎麼辦?)?

我在問什麼是使用PyPi的外部軟件包時的工作流程?

回答

4

命令:

pip freeze > requirements.txt 

將複製所有當前依賴於你的Python環境爲requirements.txt。 http://pip.readthedocs.org/en/latest/reference/pip_freeze.html

+0

希望開發人員使用virtualenv,並將安裝的模塊僅限於項目,否則您將在系統上全局安裝每個模塊。它仍然可以工作,但你會得到很多可能未被使用的模塊。 – veroxii 2014-08-29 00:54:45

1

這取決於項目。

如果你正在研究一個庫,你會想把你的依賴關係放在setup.py之內,這樣如果你把庫放在PyPi上,人們就可以自動安裝它和它的依賴關係。

如果您正在使用Python(可能是web應用程序)處理應用程序,則requirements.txt文件將更易於部署。您可以將所有代碼複製到需要的位置,使用virtualenv或pyvenv設置虛擬環境,然後執行pip install -r requirements.txt。 (你也應該這樣做,以便在全球範圍內沒有一堆庫)。

安裝它們之後立即編寫要安裝的包到您的requirements.txt當然比試圖弄清楚最後需要哪些包更容易。我所做的是我永遠不會忘記的是,我先將包寫入文件,然後使用pip install -r進行安裝。

pip freeze如果您忘記了已安裝的內容,但可以隨時閱讀它創建的文件,以確保您確實需要所有內容。如果你使用的是virtualenv,它會比你在全局安裝所有軟件包的情況下得到更好的結果。

相關問題