我真的需要在 Django 中使用 virtualenv 吗?

Do I really need to use virtualenv with Django?

这可能很像新手,但是...

我正在做我的第一个 Django 项目,我读了很多关于使用 virtualenv 被认为是最佳实践的文章。我知道 virtualenv 沙盒化了我所有的 python 依赖项,但我只是不知道如果我在沙盒 VM 中工作是否有必要这样做?我在 Vagrant 中开发,不会将这些 VM 用于其他任何用途,我将部署到一个只有这个 Django 项目的 VM 服务器。将来这个项目中的更多 Django 应用程序是否可能需要不同的依赖项,因此需要在不同的 virtualenv 中? (不确定它是否像那样工作?)

我是不是表现出经验不足和短视?

我对 Vagrant 没有任何了解,但我将 virtualenvs 用于我的 Django 项目。我会推荐给任何人。

话虽如此,如果您只打算在虚拟机上使用一个 Django 项目,则 不需要 使用 virtualenv。我还没有遇到过同一个项目中的应用程序存在依赖冲突的情况。但是,如果您在同一台机器上有多个项目,这可能是个问题。

我总是建议您理所当然地使用 virtualenv。这样做几乎没有开销,只会让事情变得更容易。与 virtualenvwrapper 结合使用,您只需键入 workon myproject 即可激活并一次性 cd 到您的 virtualenv。您可以避免必须使用 sudo 来安装东西的任何问题,以及任何可能与系统安装的软件包不兼容的版本。没有理由不这样做,真的。

在开发机器上使用虚拟环境有很多好处。

  • 您可以转到任何受支持模块的任何版本来检查问题
  • 您的项目在单独的环境下运行,不会与系统范围的模块和设置发生冲突
  • 测试很容易
  • 同一项目的多个版本可以共存。

如果你用不同的 django 版本开发多个项目,virtualenv 是必须的,没有别的办法(我不知道)。如果你曾经经历过依赖地狱,你会在 virtualenv 中感到天堂。即使你开发一个项目我会建议在 virtualenv 中编码,你永远不知道接下来会发生什么,回到过去,我的旧笔记本电脑因为太多的依赖问题而几乎崩溃,在我发现 virtualenv 之后,我的旧笔记本电脑成为了一个品牌我眼中的新笔记本电脑..

不,在你的情况下,你不需要为 virtualenv 操心。因为您使用的是专用虚拟机,所以它只是一层复杂性,作为菜鸟,您并不真正需要。

Virtualenv 在概念和用法上都非常简单,因此您可以在需要时将其简单地分层。但是,恕我直言,在添加间接之前了解如何真正布置 python 安装是有附加价值的。当您遇到它可以解决的问题时,就去解决它。但现在,保持简单:不要打扰。