【问题标题】:Virtual Environment for Python DjangoPython Django 的虚拟环境
【发布时间】:2017-05-07 20:48:18
【问题描述】:

我目前是网络编程的新手。我最近一直在研究这个 Django 项目,并且一直在阅读有关虚拟环境的信息。在我的项目开始时,我无法设置虚拟环境,所以我在没有它的情况下继续进行项目。我的问题是

这个虚拟环境是否真的有必要?

如果我以后想制作更多的 Django 项目,我是否需要这个虚拟环境来区分项目,因为现在我正在从我的主 C: 目录运行命令提示符中的所有命令?

这个虚拟环境是区分多个项目,还是根据其编码的 Django/Python 版本区分每个项目,或两者兼而有之?我想知道,因为我目前在我的主 C:drive 目录中输入了诸如 python manage.py runserver (没有虚拟环境)之类的命令。那么这是否意味着我不能在没有虚拟环境的情况下一次完成多个项目?在没有虚拟环境的情况下,我仍然可以处理多个项目吗? (我一直对此感到困惑)

我应该尝试为我的下一个项目设置一个虚拟环境,还是我仍然可以为当前的项目设置一个虚拟环境(我已经完成了项目的一半,我已经制作了模型、视图、模板等。 )?

非常感谢任何澄清我的困惑的答案!

【问题讨论】:

  • 你可以在不使用虚拟环境的情况下编写你的应用程序,但是你可以在不使用源代码控制的情况下编写你的应用程序。您可以随时创建 virtualenv,但您的问题太宽泛了。

标签: python django web-applications web


【解决方案1】:

如果没有虚拟环境,您的所有项目都将使用相同的已安装包。

当您想在项目完成后将其移至服务器时,您不知道该项目需要哪些软件包,因此您唯一的选择是将所有这些软件包也安装在那里。它很快就会变成一个很长的列表,并且许多包对于该特定项目来说都不是必需的。

使用虚拟环境时,每个项目都有一组已安装的包,它们不会混合使用。好多了。

您现在可以开始使用虚拟环境了。在您的项目目录中,执行:

pip install virtualenv  

现在您有了 virtualenv 命令(适用于所有项目)。

virtualenv env

现在您的项目目录中有一个目录“env”,其中将包含该项目的 virtualenv。

env\Scripts\activate

现在您正在使用这个 virtualenv(您的提示已更改以反映这一点)。

pip install django

仅为该项目安装 Django。

pip freeze

显示已安装的软件包,现在仅适用于该项目。

pip freeze > requirements.txt

创建一个 requirements.txt,您可以使用它来记住需要安装哪些包,并作为输入

pip install -r requirements.txt

安装它们。这或多或少是您所需要的。

【讨论】:

    【解决方案2】:

    嗯,这是初学者最常见的问题之一。我自己也遇到过这个问题,并且确实构建了多个项目,而不用担心虚拟环境。

    但是,最近,我意识到使用虚拟环境的重要性。使用虚拟环境的一些好处是:

    1. 依赖管理:防止多个项目的依赖发生冲突。
    2. 易于安装并在不同机器上设置新项目:将您的依赖项存储在 requirements.txt 文件中并运行 pip install -r requirements.txt 将依赖项安装在您想要的任何位置。

    【讨论】:

      【解决方案3】:

      在 java 中,所有使用的库都可以打包到 war 或 jar 文件中。好处是不用担心操作系统的环境。

      Python 是一种纯动态语言。没有虚拟环境,所有的python库都需要安装到系统路径中,并在所有python项目之间共享。

      假设您正在开发一个 django 1.10 项目。您会找到一个演示项目。你想在你的机器上运行它。但它仅与 django 1.8 兼容。你不能在同一台机器上安装同一个lib的两个版本,所以你会卡住。

      虚拟环境解决了这样的问题。

      当然,虚拟环境并不完美。有像 mysql-python 这样的 python 库,它依赖于 libmysqld。如果您的项目中使用了这些库,则它不能完全独立于 OS 中的设置。我认为最好的做法是使用虚拟机结合docker。像pycharm这样的IDE支持通过docker远程运行

      【讨论】:

        【解决方案4】:

        您需要 Python 虚拟环境来管理项目的 Python 包依赖项,因此它始终具有正确的版本包,例如,在另一台机器上安装时。 Python 虚拟环境可以使用pip(用于包)和virtualenv(用于虚拟环境)或conda(两者兼有)进行管理。

        有关详细信息,请参阅这篇文章:“Why you need Python environments and how to manage them with Conda”。

        【讨论】:

          【解决方案5】:

          虚拟环境在您的计算机上创建 python 和包的虚拟安装。 比如说,如果你有你的 web 应用程序。随着时间的推移,包会更新,并且有时会破坏你的 web 应用程序或 web 项目可能依赖的向后兼容性 那么,如果您想测试软件包更新的新功能,但又不想破坏您的 Web 应用程序,您会怎么做。 毕竟,您不能每次更新软件包时都关闭您的网站。这就是虚拟环境的用武之地。 您可以创建包含较新版本软件包的虚拟环境或旧版本软件包的虚拟环境 但幸运的是,Anaconda 让这对我们来说真的很容易。(Anaconda 中已经包含一个虚拟处理程序。)

          【讨论】:

            【解决方案6】:

            首先我们创建虚拟包装器

            pip install virtualenv wrapper-win

            在 make wrapper 环境之后 创建一个虚拟环境-

            mkvirtualenv 环境名称

            (命令只运行 64 位 python) 如果您想启动虚拟环境,请设置您的工作场所(目录) 使用命令提示符并编写命令

            工作环境名称

            【讨论】:

              猜你喜欢
              • 2014-11-09
              • 1970-01-01
              • 1970-01-01
              • 2023-01-20
              • 2020-10-20
              • 2019-09-24
              • 2017-08-21
              • 2010-11-27
              • 1970-01-01
              相关资源
              最近更新 更多