【问题标题】:Comprehensive beginner's virtualenv tutorial? [closed]综合初学者的virtualenv教程? [关闭]
【发布时间】:2011-08-16 05:40:40
【问题描述】:

我最近听到了有关 virtualenv 的嗡嗡声,我很感兴趣。但我听到的只是零星的赞美,并不清楚它是什么或如何使用它。

我正在寻找(理想情况下)一个后续教程,它可以让我从没有 Python 的 Windows 或 Linux 开始,并解释(不分先后)的每一步:

  • 我应该怎么做才能开始使用virtualenv
  • 使用virtualenv 是个好主意的具体原因
  • 我可以/不能使用virtualenv的情况
  • 我应该/不应该使用virtualenv的情况

并逐步(全面地)介绍一些应该+可以的示例情况。

那么有哪些很好的教程可以涵盖这些内容?或者,如果您有时间和兴趣,也许您可​​以在这里回答其中的一些问题。无论是在您的回答中,还是作为回答该问题的教程的链接,这些都是我想知道的。

【问题讨论】:

标签: python virtualenv


【解决方案1】:

【讨论】:

  • +1 我同意它们对像我这样的初学者有好处。我经历了这两个,现在我至少知道它是什么以及获取/使用它的基础知识。 (第二个出于某种原因解释了activate,但忽略了deactivate o_O)。我仍然希望能更详细地说明何时使用(以及何时不使用)以及更深入的示例。
  • 我相信答案是始终使用它,就像您应该始终使用版本控制一样。
  • 请注意 --no-site-packages 已弃用,现在它是默认行为。
  • 这让我对virtualenv有了一个好主意。推荐使用文档后面提到的virtualenvwrapper
  • 有趣的是,互联网上基本上没有一个virtualenv 教程,也没有virtualenv's user guide,实际上向您展示了如何在 Python 脚本中使用环境。您不是为了设置环境而设置环境。我找到了one tutorial that at least shows you the alternative
【解决方案2】:

Virtualenv 是一个创建独立 Python 环境的工具。

假设您在 A 和 B 两个不同的项目中工作。 项目 A 是一个 Web 项目,团队正在使用以下包:

  • Python 2.8.x
  • Django 1.6.x

项目 B 也是一个网络项目,但您的团队正在使用:

  • Python 2.7.x
  • Django 1.4.x

你正在工作的机器没有任何版本的django,你该怎么办?安装 django 1.4? django 1.6?如果全局安装 django 1.4 会很容易指向 django 1.6 在项目 A 中工作?

Virtualenv 是您的解决方案!您可以创建 2 个不同的 virtualenv,一个用于项目 A,另一个用于项目 B。现在,当您需要在项目 A 中工作时,只需为项目 A 激活 virtualenv,反之亦然。

使用 virtualenv 时更好的提示是安装 virtualenvwrapper 以轻松管理您拥有的所有 virtualenv。它是一个用于创建、工作、删除 virtualenv 的包装器。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
  • 我编辑了答案并为其添加了更多价值。感谢您的反馈
【解决方案3】:

这是另一个好消息:http://www.saltycrane.com/blog/2009/05/notes-using-pip-and-virtualenv-django/

这个展示了如何使用pip 和一个pip 需求文件和virtualenv; Scobal 的两个建议教程都非常有用,但都是 easy_install-centric。

请注意,这些教程都没有解释如何在 virtualenv 中运行不同版本的 Python - 为此,请参阅这个 SO 问题:Use different Python version with virtualenv

【讨论】:

    【解决方案4】:

    对于在干净的 Ubuntu 安装上设置 virtualenv,我发现 zookeeper tutorial 是最好的 - 你可以忽略有关 zookeper 本身的部分。 virtualenvwrapper documentation 提供了类似的内容,但在告诉您究竟应该在您的 .bashrc 文件中添加什么方面有点缺乏。

    【讨论】: