是否需要在 python 的虚拟环境中安装 Requests 库?

is it necessary to install Requests library at Virtual Environment in python?

我是 python 的新手,使用虚拟环境等。我在 C 驱动器中安装了 python,添加了 PATH 变量并从那里开始工作。出于学习目的,我决定只在我的项目目录中安装包。因此,我按照文档在项目文件夹中创建了虚拟环境。我在我的 windows 机器上以这种方式创建了它:

python -m venv my-env

之后,我激活了它:

my-env\Scripts\activate.bat

之后,我安装了 Requests 库(如文档中所述):

pip install requests

但是,我的问题是:为什么需要安装 Requests 库?以后在那个新项目目录下创建新项目,新虚拟环境,需要重新安装吗?

我安装了一些额外的包并且我想创建 requirements.txt。所以,我写道:

pip freeze > requirements.txt

现在,除了项目本身所需的库之外,该请求库中的每个包也都在该 requirements.txt 文件中。因此,如果我与其他用户共享我的项目,该用户将在通过 requirements.txt 安装时从 Requests 库中获取包。可以吗?

抱歉问了很多问题。基本上,我认为所有的问题都是相关的和上下文的。

why need to install Requests library?

虚拟环境无需安装此库即可正常工作。

Do I need to install it again if I create new project, new virtual environment inside that new project directory at future.

虚拟环境的理念是:您在为该项目创建的受控环境中工作。如果你要在另一个项目上工作,在它自己的虚拟环境中,你将不得不重新安装它。这一点也不坏:在每个项目中,您可能需要使用同一个库的不同版本,或者您甚至可能 want/need 删除一个项目,并且 none 一个项目中发生的事情会影响对方,很好

besides my required libraries for the project itself, every packages from that Requests library are in that requirements.txt file too.

是的,freeze 命令列出了所有已安装的包。这不仅包括您通过 pip install ... 安装的内容,还包括这些软件包所需的依赖项。这就是为什么有些人建议手动编写需求文件的原因:这样可以更清楚地直接需要哪些外部资源,而不是每个 sub-dependency,正如您可能已经看到的那样,它变得有点笨拙明白了。

if I share my project with other user, that user will get packages from the Requests library when install via requirements.txt. Is it okay?

从某种意义上说,这些软件包将以任何一种方式安装。它们已明确列出,但如果未列出,也会下载并安装它们。