2013-07-12 29 views
3

我现在正在自己工作,但正在寻找扩展我的操作的方法。有没有办法“版本”我的Python分布?

我想找到一个简单的方法来对我的Python发行版进行版本化,以便我可以非常轻松地重新创建它。有没有一种工具可以做到这一点?或者我可以添加/usr/local/lib/python2.7/site-packages/(或其他)到svn回购?这并不能解决PATH的问题,但我总是可以编写脚本来改变路径。理想情况下,解决方案是在VM中构建我的Python env,然后将VM的副本移出。

其他人怎么解决这个问题?

+0

为什么要使用版本控制安装的库?备份,当然,但版本控制? – delnan

+0

也许“版本”是错误的词。但最终目标是要有一个可移植的Python实例,我可以给一位同事,并且他们可以安装很少,所以他们可以快速启动并运行。 – BenDundee

回答

5

virtualenv + requirements.txt是你的朋友。

您可以为您的项目创建多个虚拟python安装,一切都包含您需要的库版本(提示:pip freeze吐出具有确切库版本的requirements.txt)。

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

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

+0

那么,目标是有一个其他开发人员可以使用的环境,所以我不确定我需要PyInstaller。我会检查vitualenv - 我听说过它,但从来没有真正仔细调查过。 – BenDundee

+0

在我看来,如果你在一个团队中开发python,没有办法绕过virtualenv。当涉及到部署(仅举几个例子:Heroku,Engine Yard,...)时,一切都是关于重新创建一个python库状态。 我已经添加了PyInstaller注释,因为您的评论是“安装+启动并快速运行”。 – Gregor

5

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

0

为了同一个目标,即具有完全相同的Python发布的我的同事,我试图创建一个网络驱动器的虚拟环境,使我们的每个人都将是能够使用它,没有任何人制作他的本地副本。 这个想法是共享安装在共享文件夹中的相同软件包。 结果:Python运行速度太慢,无法使用。另外安装一个软件包非常非常缓慢。

所以看起来除了使用virtualenv和需求文件之外没有别的办法。 (即使不幸的是,它经常不能在Windows上顺利运行,并且需要手动安装某些软件包和依赖项,至少在撰写此文时)。

相关问题