Python Django的虚拟环境

Ste*_* D. 6 python django web-applications web

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

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

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

这个虚拟环境是区分多个项目还是将每个项目与它编码的Django/Python版本或两者分开?我想知道因为我目前python manage.py runserver在我的主C:盘目录中输入了命令,例如(没有虚拟环境).那么这是否意味着我不能在没有虚拟环境的情况下一次完成多个项目?没有虚拟环境,我还可以在多个项目上工作吗?(我特别对此感到困惑)

我是否应该尝试为我的下一个项目设置一个虚拟环境,或者我仍然可以为当前项目做这个(我已经在项目的中途,我已经制作了模型,视图,模板等)?

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

Rem*_*ich 11

没有虚拟环境,您的所有项目都将使用相同的已安装软件包.

当您想要将项目移动到服务器时,您不知道该项目需要哪些软件包,因此您唯一的选择是在那里安装所有这些软件包.它将很快成为一个很长的列表,并且该特定项目不需要许多软件包.

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

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

pip install virtualenv  
Run Code Online (Sandbox Code Playgroud)

现在你有了virtualenv命令(适用于所有项目).

virtualenv env
Run Code Online (Sandbox Code Playgroud)

现在你的项目目录中有一个目录"env",它将包含这个项目的virtualenv.

env\Scripts\activate
Run Code Online (Sandbox Code Playgroud)

现在您正在使用此virtualenv(您的提示已更改以反映该情况).

pip install django
Run Code Online (Sandbox Code Playgroud)

仅为此项目安装Django.

pip freeze
Run Code Online (Sandbox Code Playgroud)

显示安装了哪些软件包,现在仅用于此项目.

pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)

创建一个requirements.txt,您可以使用它来记住需要安装的软件包以及输入

pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

安装它们.这或多或少都是你需要的.


Pul*_*hwa 6

嗯,这是初学者中最常见的问题之一.我,我自己已经面临这个问题,并且确实构建了多个项目,而不必担心虚拟环境.

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

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