使用 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命令对于创建要求文件非常有用,这些文件可以重新创建环境中安装的所有软件包的确切版本。

相关推荐
chengxuyuan1213_9 分钟前
python常用基础语法
开发语言·windows·python
chusheng18401 小时前
Python+Django 技术实现自动化漏洞扫描系统开发
python·django·自动化·漏洞扫描·漏洞扫描系统
爱数学的程序猿2 小时前
Python入门:7.Pythond的内置容器
开发语言·python
阿正的梦工坊2 小时前
Pytorch详解 train() 和 eval() 模式会影响Layer Norm吗?(中英双语)
人工智能·pytorch·python
qq_273900232 小时前
pytorch 张量的unfold方法介绍
人工智能·pytorch·python
四口鲸鱼爱吃盐2 小时前
Pytorch | 利用MIG针对CIFAR10上的ResNet分类器进行对抗攻击
人工智能·pytorch·python·深度学习·计算机视觉
测试19982 小时前
Jmeter进行http接口测试
自动化测试·软件测试·python·测试工具·jmeter·http·职场和发展
Python私教3 小时前
Passlib库介绍及使用指南
python
FreedomLeo13 小时前
Python机器学习笔记(十六、数据表示与特征工程-分类变量)
python·机器学习·数据表示与特征工程·分类变量·连续特征·分类特征
江南野栀子4 小时前
数据可视化-16. 日历图
python·信息可视化·数据挖掘·dash