使用python进行django虚拟环境设置的重要性

时间:2016-08-20 15:22:07

标签: python django virtualenv

我对使用django开发web应用程序的过程非常陌生,我遇到了这个设置并使用python的虚拟环境。 所以我找到了一些基本问题。

  1. 这个虚拟环境究竟意味着什么。

  2. 在使用django和python模块开发Web应用程序时,这是否有任何重要性。

  3. 我每次都要担心设置虚拟环境 在开发过程中。

4 个答案:

答案 0 :(得分:6)

  1. 虚拟环境是您拥有多个版本的方式 python在你的机器上没有它们彼此冲突,每个 版本可以被视为一个开发环境,你可以 有不同版本的python库和模块都是隔离的 彼此
  2. 是的,它非常重要。例如,没有virtualenv,如果你是 处理使用django 1.5但在本地使用的开源项目 你的机器,你为其他个人项目安装了django 1.9。 你几乎不可能做出贡献,因为你会得到很多 由于django版本的差异导致的错误。如果你决定 降级到django 1.5,然后您无法处理个人项目 因为他们依赖于django 1.9

    virtualenv通过启用您创建单独的功能来处理所有这些 虚拟(开发)环境彼此无关,可以 在您完成后可以轻松激活和停用。你也可以 不同版本的python

  3. 你没有被迫,但你应该这样做,它很简单:

    virtualenv newenv

    cd newenv

    source bin/activate # This current shell is now uses the virtual environment

    此外,它对测试非常重要,可以说你想要移植 从1.5到1.9的django网络应用程序,你可以通过创建轻松做到这一点 不同的virtualenv&安装不同版本的django。 如果不卸载一个版本,就不可能做到这一点(除了 你想弄乱sys.path这不是一个好主意)

答案 1 :(得分:2)

虽然我无法直接描述Django和虚拟环境的体验,但我怀疑它与我使用Flask和virtualenv的方式非常相似。

  1. 虚拟环境正是它所说的 - 为您设置环境以开发您的应用程序(包括您的Web应用程序),这不会影响您在计算机上运行的库。它可以说只用核心Python模块创建了一个空白的平板。您可以使用pip安装新模块并将其冻结到requirements.txt文件中,以便任何用户(包括您自己)都可以看到需要哪些外部库。
  2. 由于能够跟踪外部库,因此它非常重要。例如,我在两台机器之间编程,我为这两台机器设置了一个虚拟环境。 requirements.txt文件允许我只安装我需要的库以及这些库的确切版本。这保证了当我准备在生产机器上部署时,我知道我需要哪些库。这可以防止我在虚拟环境之外安装的任何模块影响我在虚拟环境中运行的程序。
  3. 是和否。我认为出于上述原因使用虚拟环境并保持项目清洁是一种好习惯。更不用说,设置虚拟环境并维护它并不困难。如果您只是运行一个小脚本来检查算法或方法,则可能不需要虚拟环境。但我仍然建议这样做,以保持运行时环境的清洁和良好的管理。

答案 2 :(得分:1)

  1. 以最简单的方式,虚拟环境为您提供独立于主机操作系统的开发环境。您可以在virtualenv的/ bin文件夹中安装和使用必要的软件,而不是使用主机中安装的软件。

  2. Python开发通常依赖于各种库和依赖项。例如。如果使用sudo pip install django安装最新版本的pip,则特定版本的django软件将在系统范围内可用。现在,如果你需要为项目使用另一个版本的django,你可以简单地创建一个virtaulenv,在其中安装该版本的django,并使用,而不用打扰安装在os中的django版本。

  3. 是的,强烈建议为每个项目设置单独的virtualenv。一旦你习惯了它,它对于开发来说似乎相当微不足道并且非常有用,可以消除很多未来的麻烦。

答案 3 :(得分:0)

它允许您在不同的依赖项和 Python 版本以及 PIP 和 Django 等其他系统之间切换。

它类似于使用 Docker,您可以在其中挑选和选择每个版本。绝对值得推荐。如果您刚开始使用最新版本,则不需要使用它,但是最好先安装 virtualenv 并在安装 django 之前开始使用它。