使用 pip 和 venv 在虚拟环境中安装软件包

大家好,我是前端开发,最进在使用Python开发。这里记录一下Python虚拟环境和Pip的使用指南.

本指南原文Install packages in a virtual environment using pip and venv

本指南讨论如何使用标准库的虚拟环境工具venv创建和激活虚拟环境并安装包。

  • 创建并激活虚拟环境
  • 使用pip命令将软件包安装到虚拟环境中
  • 使用并创建requirements.txt

本指南适用于受支持的 Python 版本,目前为 3.8 及更高版本。

创建虚拟环境

venv (适用于 Python 3)允许您管理不同项目的单独包安装。它创建了一个"虚拟"隔离的 Python 安装。当您切换项目时,您可以创建一个与其他虚拟环境隔离的新虚拟环境。您可以从虚拟环境中受益,因为可以放心地安装软件包并且不会干扰其他项目的环境。

!Tip

建议在使用第三方软件包时使用虚拟环境。

要创建虚拟环境,请转到项目目录并运行以下命令。这将在名为.venv的本地文件夹中创建一个新的虚拟环境:

Linux/MacOS

shell 复制代码
python3 -m venv .venv

Windows

shell 复制代码
py -m venv .venv

第二个参数是创建虚拟环境的位置。一般来说,您可以在项目中创建它并命名为.venv

venv将在.venv文件夹中创建虚拟 Python 安装。

!Tip

您应该使用.gitignore或类似文件从版本控制系统中排除虚拟环境目录。

激活虚拟环境

在开始在虚拟环境中安装或使用软件包之前,您需要activate它。激活虚拟环境会将虚拟环境特定的pythonpip可执行文件放入 shell 的PATH中。

Linux/MacOS

shell 复制代码
source .venv/bin/activate

Windows

shell 复制代码
.venv\Scripts\activate

要确认虚拟环境已激活,请检查 Python 解释器的位置:

Linux/MacOS

shell 复制代码
which python

Windows

shell 复制代码
where python

当虚拟环境处于活动状态时,上述命令将输出包含.venv目录的文件路径,并以以下内容结尾:

python 复制代码
#Linux/MacOS
.venv/bin/python
#Windows 
.venv\Scripts\python

激活虚拟环境后,pip 会将软件包安装到该特定环境中。这使您能够在 Python 应用程序中导入和使用包。

停用虚拟环境

如果您想切换项目或离开虚拟环境, 使用deactivate命令:

shell 复制代码
deactivate

!Tip

关闭 shell 将停用虚拟环境。如果您打开一个新的 shell 窗口并想要使用虚拟环境,请重新激活它。

如果您想要重新激活现有虚拟环境,请按照激活虚拟环境的相同说明进行操作。无需创建新的虚拟环境。

Pip使用

pipPython 包管理器。它用于将软件包安装和更新到虚拟环境中。

Linux/MacOS

在 Linux 上,您可能需要安装额外的软件包,例如python3-pip 。您可以通过运行以下命令来确保 pip 是最新的:

shell 复制代码
python3 -m pip install --upgrade pip
python3 -m pip --version

之后,您应该在您的用户站点中安装最新版本的 pip:

shell 复制代码
pip 23.3.1 from .../.venv/lib/python3.9/site-packages (python 3.9)

Windows

您可以通过运行以下命令来确保 pip 是最新的:

shell 复制代码
py -m pip install --upgrade pip
py -m pip --version

之后,您应该拥有最新版本的 pip:

shell 复制代码
pip 23.3.1 from .venv\lib\site-packages (Python 3.9.4)

使用 pip 安装软件包

激活虚拟环境后,您可以安装软件包。使用pip install命令安装软件包。

安装第三方包

Linux/MacOS

shell 复制代码
python3 -m pip install requests

Windows

shell 复制代码
py -m pip install requests

指定版本

pip 允许您使用版本说明符指定要安装的软件包版本。例如,要安装特定版本的requests

Linux/MacOS

shell 复制代码
python3 -m pip install 'requests==2.18.4'

Windows

shell 复制代码
py -m pip install "requests==2.18.4"

要安装最新的2.x版本的 requests:

Linux/MacOS

shell 复制代码
python3 -m pip install 'requests>=2.0.0,<3.0.0'

Windows

shell 复制代码
py -m pip install "requests>=2.0.0,<3.0.0"

要安装软件包的预发行版本,请使用--pre标志:

Linux/MacOS

shell 复制代码
python3 -m pip install --pre requests

Window

shell 复制代码
py -m pip install --pre requests

安装包的extra功能

有些package有可选的extra。您可以通过在括号中指定额外内容来告诉 pip 安装它们:

Linux/MacOS

shell 复制代码
python3 -m pip install 'requests[security]'

Windows

shell 复制代码
py -m pip install "requests[security]"

从本地安装包

如果您有Distribution Package存档的本地副本(zip、wheel 或 tar 文件),您可以直接使用 pip 安装它:

Linux/MacOS

shell 复制代码
python3 -m pip install requests-2.18.4.tar.gz

Windows

shell 复制代码
py -m pip install --no-index --find-links=/local/dir/ requests

升级包

pip 可以使用--upgrade标志就地升级包。例如,要安装最新版本的requests及其所有依赖项:

Linux/MacOS

shell 复制代码
python3 -m pip install --upgrade requests

Windows

shell 复制代码
py -m pip install --upgrade requests

从requirements.txt文件安装

pip 允许您在需求文件中声明所有依赖项,而不是单独安装包。例如,您可以创建一个包含以下内容的requirements.txt文件:

Linux/MacOS

shell 复制代码

Windows

shell 复制代码

Linux/MacOS

shell 复制代码
python3 -m pip install -r requirements.txt

Windows

shell 复制代码
py -m pip install -r requirements.txt

生成依赖文件requirements.txt

Linux/MacOS

shell 复制代码
python3 -m pip freeze

Windows

shell 复制代码
py -m pip freeze

pip freeze命令对于创建要求文件非常有用,这些文件可以重新创建环境中安装的所有软件包的确切版本。

相关推荐
烛阴3 分钟前
Python枚举类Enum超详细入门与进阶全攻略
前端·python
Mikhail_G1 小时前
Python应用函数调用(二)
大数据·运维·开发语言·python·数据分析
weixin_472339462 小时前
使用Python提取PDF元数据的完整指南
java·python·pdf
QQ676580082 小时前
基于 PyTorch 的 VGG16 深度学习人脸识别检测系统的实现+ui界面
人工智能·pytorch·python·深度学习·ui·人脸识别
木木黄木木2 小时前
Python制作史莱姆桌面宠物!可爱的
开发语言·python·宠物
胖哥真不错3 小时前
Python基于方差-协方差方法实现投资组合风险管理的VaR与ES模型项目实战
python·毕业设计·课程设计·方差-协方差方法·投资组合风险管理·var与es模型
慧一居士3 小时前
flask功能使用总结和完整示例
python
大模型铲屎官3 小时前
【深度学习-Day 23】框架实战:模型训练与评估核心环节详解 (MNIST实战)
人工智能·pytorch·python·深度学习·大模型·llm·mnist
阿幸软件杂货间4 小时前
PPT转图片拼贴工具 v1.0
python·powerpoint
AIGC_北苏4 小时前
DrissionPage爬虫包实战分享
爬虫·python·drissionpage