我应该总是在Django中使用virtualenvs吗?

时间:2017-06-06 14:02:17

标签: python django virtualenv

我是初学者,我正在学习Django进行网络开发。所以我想知道我的小测试,应该总是有一个virtualenv或者我可以继续学习而不安装它吗?我问过,因为在youtube Django视频中,有些教师正在安装它,而其他人则不是。

5 个答案:

答案 0 :(得分:6)

来自the hitchhiker's guide to python

  

虚拟环境是一种保持所需依赖关系的工具   通过创建虚拟Python,在不同的地方创建不同的项目   他们的环境。它解决了“Project X依赖于版本1.x.   但是,项目Y需要4.x“的困境,并保留您的全球网站包   目录清洁和易于管理。

这意味着如果您在本地环境中安装所有软件包,则在处理多个项目时可能会发生冲突。因此,为每个项目设置virtualenv被视为故障安全。

答案 1 :(得分:2)

我没有充分的理由不知道这一点,并且当我第一次开始学习并且以一种需要数月才能修复的方式搞砸了我的系统时,没有充分的理由说话,我' d强烈推荐他们。你最有可能在你最终获得的任何工作中使用它们,所以这是一个好的,容易学习的东西。

Virtualenv-burrito是一种快速简便的方法来设置所有内容。

https://github.com/brainsik/virtualenv-burrito

答案 2 :(得分:1)

这在某种程度上是一个基于意见的问题,但由于它涉及良好做法,我想放弃几行。

Django视频中的一些教师不会对virtualenvs说些什么,可能是因为他们的课程针对的是Django而不是virtualenvs,而他们的视频也无法完成所有这些。

对Python使用虚拟环境通常是一种很好的做法,尤其是对于Web开发。您将从一些教程开始并使用某些版本的Django。对于您的下一个项目,您最终会选择最新版本或LTS版本。不要通过以root身份全局安装软件包来搞乱一切。

超越virtualenv我强烈建议使用virtualenvwrapper,这样可以真正使用虚拟环境。

答案 3 :(得分:1)

你的问题是:

  

我可以继续安装吗?

所以答案是

virtualenv不是设置Django项目的必要条件。然而,当你更了解依赖关系时,你最终会在将来使用virtualenvs,那你为什么不开始学习如何使用它们呢?

virtualenv不是隔离项目依赖关系的唯一解决方案,但却是Python开发中最常用的解决方案。

答案 4 :(得分:1)

没有。使用virtualenvs并非强制要求,但可能有所帮助。

我认为您需要了解virtualenvs做什么以及何时使用它。 virtualenvs的作用是从其他人那里创建一个孤立的环境(例如,django项目)。 它不仅仅是Django组件。它也可以用于其他项目。

让我们假设有两个不同的项目,A和B.如果它们是Django个项目则无关紧要。

在项目A中,您可能希望使用python模块AAA(版本1.00)。在项目B中,您还想使用python模块AAA(版本2.00)。两者都使用相同的模块,但它们的版本不同。

在这些情况下,您可以使用virtualenvs创建两个不同的环境并隔离它们。并分别在这些环境中安装AAA版本1.0,AAA版本2.0。

当人们开始一个新项目时,为它创建一个新的孤立环境是非常自然和常见的。然后,将项目移动到另一台计算机或在其他计算机中重新创建完全相同的环境将很容易。此外,它不会受到其他先前安装的模块或配置的影响。如果在项目可能以不同方式工作之前还有其他模块,则在部署之前可能找不到它。

所以这不是强制性的,但使用它是一种很好的做法。

此外,还有许多工具可用于在CondaDocker等不同层中创建隔离环境......请查看这些内容。