gpt4 book ai didi

python - python 虚拟环境是否避免了冗余安装?

转载 作者:行者123 更新时间:2023-12-04 04:27:25 25 4
gpt4 key购买 nike

我对 python 还很陌生,我开始使用 python 虚拟环境。当我创建一个虚拟环境时,我必须重新安装我正在处理的当前项目所需的所有模块。
我想知道如果相同版本的模块已经安装在另一个项目或系统范围内,虚拟环境是否会以某种方式避免模块安装的冗余?

另外,在系统范围内安装模块而不是仅仅在虚拟环境中是否有任何意义,因为无论如何我都需要在虚拟环境中安装模块?

最佳答案

简短回答:

如果您使用虚拟环境,即使您之前在另一个虚拟环境中安装了此包,您也需要安装项目所需的每个依赖项(包)。

这正是虚拟环境的目的:每个项目都有自己的依赖项。这使您可以清楚地管理每个项目的依赖关系,而不会影响其他项目。

当然 你可以通过执行全局安装依赖项(一个包)
pip install <Package name>
但在此之前,请确保不要激活任何虚拟环境。这将在主要环境 python 的根安装处安装包。

但是强烈不推荐做到这一点并使用虚拟环境始终是一个好习惯。

其他:

现在除了这个答案之外,您还可以使用以下命令:

pip freeze > requirements.txt

这将创建一个文件调用 requirements.txt在项目的根文件夹中。

该文件如下所示:
numpy==1.18.1
pandas==0.25.3

在这个例子中,我在我的虚拟环境中安装了包 numpy版本 1.18.1 和包 pandas在其版本 0.25.3

这样,如果另一个项目需要更新或旧版本的包 numpy,我可以直接在其 requirements.txt 中进行管理。不影响其他项目。

该文件还将帮助您快速轻松地重新安装环境的依赖项(例如,如果您想创建另一个具有与当前项目相同的起始依赖项的项目),只需执行以下操作:
pip install -r requirements.txt

当然:请务必先将此 requirements.txt 文件复制到新项目的目标根文件夹并激活其虚拟环境,然后再执行此操作

命令中的快速摘要:

1)安装虚拟环境(Linux):
pip3 install virtualenv 

安装虚拟环境(Windows):
pip install virtualenv

2)创建一个新的虚拟环境(linux和Windows):
 virtualenv  venv 

一定要做 cd在执行此操作之前到您的根项目文件夹。这将创建一个名为“venv”的新文件夹(或您在 virtualenv 命令之后放置的任何名称,但 venv 是一种约定和一种很好的做法)。如果您不在根文件夹中并且出于任何原因不想这样做,您可以随时添加 -p标记此命令 inn 以精确地安装虚拟环境的路径,如下所示:
virtualenv -p /YOUR_PROJECT_PATH/ venv

3)激活虚拟环境(Linux):
$ source  YOUR_PROJECT_PATH/venv/bin/activate

如果您调用虚拟环境的方式与 venv 不同,请务必将 venv 替换为您调用的任何内容。

激活虚拟环境(Windows):
C:\> YOUR_PROJECT_PATH\venv\Scripts\activate.bat

在此之后你应该有这个提示:

Linux:
(venv) $ 

window :
(venv) C:\>

4)安装一个包:

Linux (venv) $ pip3 install <package_name>
window (venv) C:\> pip install <package_name>
此命令将安装 <package_name>仅在 venv site-packages 文件夹中,并且此依赖项仅适用于此虚拟环境。

5)卡住你的依赖:

Linux (venv) $ pip freeze > requirements.txt
window (venv) C:\> pip freeze > requirements.txt
如上所述,这将创建 requirements.txt在您的项目根文件夹中(它将包含您在此虚拟环境中安装的所有包名称及其版本的列表)

6)停用您的虚拟环境:
deactivate

如果您通过执行上述步骤创建了一个新环境,并且您希望这个新环境具有与第一个相同的依赖项:
cp YOUR_FIRST_PROJECT_PATH\requirements.txt YOUR_NEW_PROJECT_PATH
cd YOUR_NEW_PROJECT_PATH

在这里创建并激活您的新虚拟环境(如上所述)然后:
pip install requirements.txt

7) 全局安装包 (不推荐) :
如果你有一个当前激活的 venv 首先:
deactivate 

然后 :
pip install <package_name>

这将在 python 的根安装处安装 package_name。

当然为了进一步理解:

https://docs.python.org/3/library/venv.html

关于python - python 虚拟环境是否避免了冗余安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61564609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com