我最近启动了一个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. 版本控制开发新手到源代码控制
- 3. MS Access中的源代码控制/版本控制
- 4. 代码版本控制和维护
- 5. INTEL-XDK和源代码/版本控制 - 是否支持?
- 6. WebReference和源代码控制
- 7. 版本控制在virtualenv南迁移
- 8. 开放源码版本控制管理
- 9. MacOS上的最佳源代码版本控制软件
- 10. 版本控制与传统源代码管理
- 11. 什么版本的Rubberduck具有工作源代码控制?
- 12. 使用版本控制元数据自动更改源代码
- 13. 使用TFS源代码控制时的Microsoft Access版本规则
- 14. 访问VBA代码的版本控制?
- 15. 版本控制SQL Server DDL代码
- 16. 版本控制的开发代码
- 17. 使用数据库表或源代码控制工具进行版本控制?
- 18. WSO2IS IS源代码版本
- 19. 如何在源代码控制库中维护源代码版本和项目树结构
- 20. 我需要开始使用版本控制和源代码管理
- 21. iPhone,XCode和源代码控制
- 22. 版本控制和编码格式
- 23. 源代码控制培训
- 24. SQL Server源代码控制
- 25. 家庭源代码控制
- 26. 源代码控制策略
- 27. 免费源代码控制
- 28. Lotus Notes源代码控制
- 29. LiveCode源代码控制
- 30. SQL Server源代码控制
我不会建议将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