繁体   English   中英

pyenv或virtualenv对Django是必不可少的吗?

[英]Is pyenv or virtualenv essential for Django?

第一次,我使用virtualbox和vagrant(CentOS 7)为Django创建了一个环境。

但是我看到的每个教程都说我需要使用pyenv或virtualenv。 我认为它们用于为Django创建虚拟环境。 但是我不知道为什么我需要使用pyenv或virtualenv。 (例如,Cakephp3不需要pyenv或virtualenv之类的软件包。)

而且我使用的是virtualbox和vagrant,它们已经是虚拟环境,所以我认为我正在另一个虚拟环境中创建虚拟环境。 我不确定这是否有意义。 如果我使用的是virtualbox或vmware等虚拟环境,也许不需要pyenv和virtualenv吗?

它们对Django是必不可少的吗? 在实际服务器中部署Django时,是否仍然需要使用pyenv或virtualenv?

不是必需的,但是建议您在开始处理Django项目时在虚拟环境中工作。

虚拟环境的重要性。

  • 虚拟环境是您在计算机上拥有多个版本的python而不相互冲突的一种方式,每个版本都可以视为开发环境,并且您可以拥有彼此隔离的不同版本的python库和模块。

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

  • 很多时候,不同的项目需要同一软件包的不同版本,并且将每个项目保持在单独的虚拟环境中会很有帮助。

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

不,在Django中使用virtualenv并不是必须的,但建议这样做,因为它可以隔离用于系统项目的python或库的多个版本。 如果您不使用virtualenv,则该库将成为python主目录的一部分。

例如:如果您将某个库的版本1用于一个项目,后来又在其他项目中使用,或者需要使用该库的版本2,则使用特定的virtualenv(如果您同时在多个项目上工作) ),从而使您可以毫无问题地使用多个库。

VirtualBox可将您的开发操作系统与常规操作系统隔离。 Virtualenv将项目的Python软件包与系统Python软件包隔离。

许多Linux发行版将Python软件包作为其他软件的依赖项安装在系统范围的site-packages目录中。 Python没有办法用相同的名称来版本化软件包,因此当您的项目依赖于package==10.0.0但您的发行版已安装package==0.0.2时,您将遇到问题,您将无法升级而不会破坏某些内容。

虚拟环境非常轻巧。 它们实际上只是PATH环境变量中的一个新条目,并且进行了一些配置更改,以使Python仅在特定位置显示软件包。

除了键入一个额外的命令来激活它之外,使用virtualenv并没有真正的弊端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM