在虚拟环境中安装Django和模块

时间:2020-06-22 22:56:36

标签: python django

我的问题是我是否必须在虚拟环境中每次都安装django才能运行python文件?这会占用我机器上的一堆空间吗?我的项目也使用“ matplotlib”,我创建的每个虚拟环境也要求我也导入matplotlib模块。它变得烦人。我每次都必须这样做吗?

我是Django的新手。我想在django中运行一些python文件,但是它们没有用,所以经过一些研究,我发现我需要在虚拟环境中运行pycharm项目才能运行这些python文件。

我的文件夹看起来像这样pycharmProjects->我的项目 我输入pycharmProjects并使用“ pienv shell”设置虚拟环境。然后我运行“ python3 manage.py runserver”。事实证明,在文件运行之前,我必须在虚拟环境中安装django。

2 个答案:

答案 0 :(得分:2)

简短的回答是不,您根本不必使用虚拟环境,而可以在全球范围内安装依赖项。但是,您很快就会发现它会引起很多问题。创建虚拟环境的主要原因是为了控制您的依赖关系,并防止由于项目之间的交叉而导致的错误。

答案 1 :(得分:1)

答案是肯定的。

如果创建virualenv,则必须安装程序需要的所有软件包。

长答案:

您可以在整个系统上安装django,然后使用以下选项创建virtualenv --system-site-packages,然后从全局安装的python中使用django。 (或者您将所有内容都安装在全局python中,我个人认为这不是一个好习惯)

如果您处理许多不同的项目,我认为如果每个项目使用一个virtualenv,将避免很多麻烦。 麻烦是指一个项目中断,因为另一个项目的一个pip安装更改了一个软件包的版本,并且一个项目无法处理较新的版本。

我建议为每个项目创建一个requirements.txt文件,其中列出了依赖项,然后可以使用以下命令创建virtualenv pip install -r requirements.txt

如果您有requirement.txt个文件,那么如果返回到旧项目,则可以相当快地创建virtualenvs,并且只要磁盘空间用尽就可以删除virtualenvs。为了安全起见,请在删除virtualenv之前输入pip freeze > pipfreeze.txt,如果要创建具有相同模块和相同版本的虚拟环境,请使用pip install -r pipfreeze.txt

如果在类似Linux的系统上工作,您可能还希望查看direnvautoenv。 更改为项目的工作目录后,它将自动切换到所需的virtualenv。