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

importance of virtual environment setup for django with python

我对Django开发Web应用程序的过程非常陌生,我遇到了这种设置,并使用了针对Python的虚拟环境。所以我问了一些基本问题。

  • 这个虚拟环境到底意味着什么?

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

  • 每次都要设置虚拟环境吗在开发过程中。


  • 虚拟环境是您拥有多个版本的你机器上的Python,没有互相碰撞。版本可以被视为开发环境,您可以有不同版本的python库和模块都是独立的彼此之间
  • 是的,这很重要。例如,如果没有virtualenv,正在开发一个使用django 1.5但在本地您的机器,您为其他个人项目安装了django 1.9。你几乎不可能做出贡献,因为你会得到很多由于django版本不同而产生的错误。如果你决定降级到django 1.5,那么你就不能从事你的个人项目了。因为他们依赖于django 1.9

    virtualenv通过允许您创建单独的虚拟(开发)环境彼此之间没有联系,可以完成后很容易激活和停用。你也可以不同版本的python

  • 你不是被迫的,但你应该这样做,就像:

    virtualenv newenv

    cd newenv

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

    此外,它对于测试非常重要,比如说您想移植一个从1.5到1.9的Django Web应用程序,您可以通过创建不同的virtualenv和安装不同版本的django。不卸载一个版本是不可能做到这一点的(除非你想和sys.path搞混,这不是个好主意)


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

  • 虚拟环境完全按照它所说的做——为开发应用程序(包括Web应用程序)而设置的环境不会影响您在计算机上运行的库。可以说,它只使用核心的Python模块创建了一块空白的石板。您可以使用PIP安装新模块并将其冻结到requirements.txt文件中,这样任何用户(包括您自己)都可以看到需要哪些外部库。
  • 它具有跟踪外部图书馆的能力,因此非常重要。例如,我在两台机器之间编程,并为每台机器设置了一个虚拟环境。requirements.txt文件只允许我安装那些库的确切版本所需的库。这保证了当我准备好在生产机器上部署时,我知道我需要什么库。这可以防止我在虚拟环境之外安装的任何模块影响我在虚拟环境中运行的程序。
  • 是和否。我认为出于上述原因使用虚拟环境并保持项目的整洁是一个很好的实践。更不用说,建立和维护虚拟环境并不困难。如果您只是运行一个小脚本来检查算法或方法,那么您可能不需要虚拟环境。但我仍然建议您这样做,以保持运行时环境干净和管理良好。

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

  • Python开发通常依赖于各种库和依赖项。例如,如果使用sudo pip install django安装最新版本的pip,特定版本的django软件将在系统范围内可用。现在,如果您需要为一个项目使用另一个版本的django,您可以简单地创建virtaulenv,在其中安装该版本的django,然后使用,而不必麻烦操作系统中安装的django版本。

  • 是的,强烈建议为每个项目设置单独的virtualenv。一旦你习惯了它,它将显得相当琐碎和非常有用的发展,消除了许多未来的头痛。