[英]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.