为什么virtualenv必要?

时间:2014-05-30 06:21:06

标签: python virtualenv

我是Python的初学者。

我在Python项目开发期间首选 virtualenv

我根本无法理解这一点。为什么选择virtualenv

4 个答案:

答案 0 :(得分:24)

Virtualenv将您的Python软件包保存在项目本地化的虚拟环境中,而不是强迫您在系统范围内安装软件包。

这有很多好处,

  • 第一个原则是你可以有多个virtulenvs,所以你 甚至可以为不同的项目提供多套软件包 如果这些套餐通常会相互冲突。 例如,如果您正在处理的一个项目在Django 1.4上运行 另一个在Django 1.6上运行,virtualenvs可以保留这些项目 完全分开,以便您可以立即满足这两个要求。
  • 第二个,让您可以轻松地使用自己的依赖项发布项目 modules.Thus,您可以轻松创建您的requirements.txt 文件。
  • 第三,是它允许你切换到该项目*的另一个已安装的python解释器。非常有用(想想旧的2.x脚本),但遗憾的是现在built-in venv中没有。

请注意,virtualenv是关于"虚拟环境"但与"虚拟化"相同或者"虚拟机" (这让一些人感到困惑)。例如,VMWare与virtualenv完全不同。

答案 1 :(得分:1)

简单地说,虚拟环境是一个独立的Python工作副本,它允许您处理特定项目而不必担心影响其他项目。

例如,您可以处理需要Django 1.3的项目,同时还要维护一个需要Django 1.0的项目。

答案 2 :(得分:1)

VirtualEnv 可帮助您创建正在处理的本地环境(非系统范围)特定于项目

因此,当您开始处理多个项目时,您的项目将具有不同的依赖关系(例如,不同的Django版本),因此您需要为每个项目使用不同的虚拟环境。 VirtualEnv为您完成此任务。

正如您使用的是VirtualEnv ..尝试 VirtualEnvWrapper https://pypi.python.org/pypi/virtualenvwrapper

提供了一些实用程序来创建切换并轻松删除virtualenvs,例如:

  1. mkvirtualenv <name> :创建新的Virtualenv
  2. workon <name> :使用指定的virtualenv
  3. 和其他一些人

答案 3 :(得分:0)

假设您正在处理多个项目,一个项目需要特定版本的python,而另一个项目则需要其他版本。如果您不在虚拟环境上工作,则两个项目都将访问本地安装在您计算机中的相同版本,以防出现错误。

在虚拟环境中,您正在创建计算机的新实例,您可以在其中存储所有版本的库。每次您可以创建一个新的虚拟环境并将其作为新的虚拟环境进行处理。