有没有一种方法可以“版本控制”我的Python发行版?

3
我现在是单人操作,但正在寻找扩展运营的方法。
我想找到一种简单的方式来版本控制我的Python分发,以便可以轻松地重新创建它。有没有工具可以做到这一点?或者我可以将/usr/local/lib/python2.7/site-packages/(或其他)添加到svn存储库中?这并不能解决PATH问题,但我可以编写一个脚本来更改路径。理想情况下,解决方案是在VM中构建我的Python环境,然后将VM的副本分发出去。
其他人是如何解决这个问题的?

你为什么要对已安装的库进行版本控制呢?备份可以,但版本控制呢? - user395760
也许“版本”这个词不太合适。但最终目标是拥有一个便携式的Python实例,可以轻松地交给同事安装,让他们能够快速上手运行。 - BenDundee
3个回答

5

virtualenv + requirements.txt 可以帮助您。

您可以为您的项目创建几个虚拟的Python环境,每个环境都包含您所需要的那些库和精确版本(提示:使用 pip freeze 命令生成一个精确版本的 requirements.txt 文件)。

在这里找到关于 virtualenv 的好参考资料:http://simononsoftware.com/virtualenv-tutorial/ (它是来自这个问题的 Comprehensive beginner's virtualenv tutorial?)。

或者,如果您只想将您的代码与库一起分发,PyInstaller 是值得一试的。您可以将所有内容打包成一个静态可执行文件 - 您甚至不必安装软件。


好的,目标是要有一个其他开发者可以使用的环境,所以我不确定我想要PyInstaller。我会看看vitualenv——我听说过它,但从来没有仔细调查过。 - BenDundee
在我看来,如果你在团队中开发Python,那么virtualenv是必不可少的。在部署方面(比如Heroku、Engine Yard等),一切都是关于重新创建Python库状态的。我加入了PyInstaller这个备注,因为你提到了“快速安装和运行”。 - Gregor

5

您想使用 virtualenv。它允许您为已安装的软件包创建应用程序特定目录。您还可以使用 pip 生成和构建一个 requirements.txt 文件。


0
为了达到相同的目标,即拥有与我的同事完全相同的Python分发,我尝试在网络驱动器中创建一个虚拟环境,以便我们每个人都能够使用它,而不需要任何人制作他自己的本地副本。这个想法是共享安装在共享文件夹中的相同软件包。
结果:Python运行得非常慢,无法使用。同时,安装软件包也非常缓慢。
因此,看起来没有其他办法,只能使用virtualenv和requirements文件。(即使不幸的是,在Windows上它经常不能平稳地工作,并且需要手动安装一些软件包和依赖项,至少在撰写本文时是这样。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接