2016-11-09 196 views
3

我想了解如何使用pip多種環境,我已經在我的生產環境需要點子通用瓶中的web項目安裝如何使用PIP凍結>> requirement.txt正確多種環境

pip install flask psycop2 Flask-SQLAlchemy 

我的dev &測試環境需要這些和一些額外的東西

pip install flask psycop2 Flask-SQLAlchemy factory-boy flake8 WebTest 

我知道我可以運行pip freeze >> requirements/dev.txt然後進行文件名爲prod.txt在同一個文件夾中剪切和複製所有常見的重並且在我的dev.txt中加入了-r prod.txt,因爲它也安裝了prod要求。

我的問題是,如何在安裝時將pip凍結包壓縮到特定的requirements.txt文件讓我們假設接下來我需要flake8-debugger這顯然需要去dev.txt,所以如何使它不發生凍結而發生單個文件和包複製粘貼?

我應該去flake8-debugger而不是版本dev.txt並運行pip install -r requirements/dev.txt還是有一個更優雅的工作流程呢?

+0

我還在尋找一個優雅的工作流程 –

回答

2

原來,這絕不會在requirements.txt系統上固定,但答案就在這裏。

https://github.com/pypa/pipfile

有了新Pipfile我們很快就可以管理相若方式要求紅寶石的Gemfile或NPM的package.json

Pipfile

警告:該項目正在積極發展。

Pipfile是一種新的(也是更好!)的方式來聲明Python環境的依賴關係(例如部署Web應用程序)。它將完全替代普遍使用的requirements.txt文件,目前可使用$ pip install -r進行安裝。

這是一個概念項目,一旦API(包括Pipfile本身的形式)被構建出來並最終完成,它最終將被構建到pip中。

請記住,這裏的重要部分是Pipfile.lock。它允許確定性構建。今天的requirements.txt可以做到這一點,並且當版本說明符沒有提供時,應該,但通常不會。這一努力將提供更令人愉快的用戶體驗。

概念

一個Pipfile會優於在許多方面一個requirements.txt文件:

表現Python語法來聲明所有類型的Python的依賴關係。 對子依賴組(例如測試組)進行分組。 僅使用單個文件將受到極大的鼓勵。 Pipfile.lock 示例Pipfile

注:將會有一個默認源,並且也可以使用上下文管理器。

source('https://pypi.org/', verify_ssl=True) 

package('requests') 
package('Django', '==1.6') 
package('pinax', git='git://github.com/pinax/pinax.git', ref='1.4', editable=True) 
dev_package('nose') 
相關問題