我最近啓動了一個Django項目,很快就意識到virtualenv會非常有用,原因很多。我設置了virtualenv和我的項目,但現在我想知道應該將哪個文件添加到我的源代碼管理器中(在我的例子中是Mercurial)。我應該在Venv文件夾下添加所有文件嗎?我如何確保一位同事能夠克隆並立即開始工作,而不必再次設置env?Virtualenv和源代碼版本控制
回答
您生成您與您的項目提交了「要求」文件(通常requirements.txt
):
pip freeze > requirements.txt
然後,每個開發人員建立了自己的virtualenv並運行:
pip install -r requirements.txt
當您在進行python/django開發時,所有這些環境麻煩都是常見的!我經歷了所有這些問題,並且我測試了一些解決方案!我已經測試過的東西:
- 項目運行的本地
- 項目的virtualenv
- 項目運行在虛擬機上運行的虛擬機
- 項目運行,使用流浪漢
的最佳解決方案我發現是#4!因爲我曾經工作過的公司,團隊中的每個人都有不同的操作系統,各種windows,mac和linux,並且要爲每個環境安裝所有依賴關係,這需要時間!所以我們決定嘗試virtualenv,這真的很棒!但每個人仍然必須建立自己的環境。 virtualenv中的問題是所有的python源代碼都在你創建的環境中!所以我不會將這些文件推送到源版本控制!最好的解決方案是#4,因爲那正是我需要的,Vagrant使用廚師來設置你的環境,所以你只需要寫一些食譜,讓流浪者爲你運行它們!然後你將這些食譜推送給SCM,然後當下一個人從SCM獲取文件並重新加載VM時,所有依賴關係將自動安裝!
我有一個博客文章解釋更多關於這個問題以及我已經創建a Django Blank project in github,所以你可以得到這個項目的起點使用vagrant。
http://arthurnn.com/blog/2011/11/25/easy-django-quickstart/(鏈接不再有效,因此鏈接到Wayback機器)
編輯
從克里斯·普拉特解決方案是一個很好的爲好,但有些庫不能如此直白地安裝在所有例如,OS上的很多人在想要安裝MySQLdb-python時遇到問題。這是一個非常常見的圖書館,但是如果你的團隊中的每個人都必須花時間解決這個問題,那就一點都不好!
'MySQLdb-python'這是使用完整環境的一個非常好的理由,但是這也不能通過點/要求來完成。文本? – kbuilds 2014-08-27 20:18:02
- 1. 源代碼控制版本和引用
- 2. MS Access中的源代碼控制/版本控制
- 3. 版本控制開發新手到源代碼控制
- 4. Apex代碼版本控制
- 5. 代碼版本控制和維護
- 6. INTEL-XDK和源代碼/版本控制 - 是否支持?
- 7. WebReference和源代碼控制
- 8. 二進制版本和源代碼版本之間的區別?
- 9. 版本控制在virtualenv南遷移
- 10. 在virtualenv中控制pip版本
- 11. 開放源碼版本控制管理
- 12. 用於版本控制的Google Apps腳本和源代碼工具?
- 13. MacOS上的最佳源代碼版本控制軟件
- 14. 什麼版本的Rubberduck具有工作源代碼控制?
- 15. 版本控制與傳統源代碼管理
- 16. 使用版本控制元數據自動更改源代碼
- 17. 使用TFS源代碼控制時的Microsoft Access版本規則
- 18. 訪問VBA代碼的版本控制?
- 19. Git:生產代碼的版本控制?
- 20. 版本控制的開發代碼
- 21. 版本控制SQL Server DDL代碼
- 22. 使用數據庫表或源代碼控制工具進行版本控制?
- 23. WSO2IS IS源代碼版本
- 24. 如何在源代碼控制庫中維護源代碼版本和項目樹結構
- 25. 我需要開始使用版本控制和源代碼管理
- 26. iPhone,XCode和源代碼控制
- 27. Visual Studio 2013 RC和源代碼控制
- 28. Designer.cs文件和源代碼控制
- 29. setup.py和源代碼控制庫
- 30. 家庭源代碼控制
我不會建議將virtualenv放在源代碼控制之下 - 它不能在Python版本,操作系統或32/64位平臺上移植。相反,只需使用'〜/ path/to/virtualenv/bin/pip freeze>〜/ path/to/repo/requirements.txt'。其他開發者需要設置他們自己的virtualenv,但它實際上是兩個命令 - 「virtualenv〜/ path/to/env」,〜/ path/to/env/bin/pip install -r〜/ path/to/requirements。 txt'。 – AdamKG 2012-03-06 15:17:03
親愛的Google員工,請參閱:http://stackoverflow.com/a/6012590/82216 – sampablokuper 2013-05-07 15:33:38