【问题标题】:Is there a way to "version" my python distribution?有没有办法“版本”我的 python 发行版?
【发布时间】:2013-07-11 11:21:07
【问题描述】:

我现在一个人工作,但正在寻找扩展我的业务的方法。

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

其他人是如何解决这个问题的?

【问题讨论】:

  • 为什么要对已安装的库进行版本控制?备份,当然,但版本控制?
  • 也许“版本”是错误的词。不过,最终目标是拥有一个可移植的 Python 实例,我可以将它提供给同事,并且它们可以轻松安装,因此它们可以快速启动和运行。

标签: python


【解决方案1】:

virtualenv + requirements.txt 是你的朋友。

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

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

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

【讨论】:

  • 嗯,目标是拥有一个其他开发人员可以使用的环境,所以我不确定我是否想要 PyInstaller。我会检查 vitualenv——我听说过,但从未真正仔细研究过。
  • 在我看来,如果你在一个团队中开发 python,virtualenv 是没有办法的。在部署方面(仅举几例:Heroku、Engine Yard 等)——一切都是关于重新创建 python 库状态。由于您对“安装 + 快速启动并运行”的评论,我添加了 PyInstaller 备注。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    出于相同的目标,即拥有与我的同事完全相同的 Python 发行版,我尝试在网络驱动器中创建一个虚拟环境,这样我们每个人都可以使用它,而无需任何人制作他的本地副本。 这个想法是共享安装在共享文件夹中的相同包。 结果:Python 运行速度慢到无法使用。安装软件包也非常缓慢。

    所以看起来除了使用 virtualenv 和需求文件之外别无他法。 (即使不幸的是,它在 Windows 上并不总是能顺利运行,它需要手动安装一些包和依赖项,至少在撰写本文时是这样。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      • 2023-03-14
      • 2016-08-11
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多