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

相关推荐
兔子的洋葱圈1 小时前
【django】3 (django路由) 路由配置和反向解析
后端·python·django
黑不拉几的小白兔1 小时前
第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组题目试做(中)【本期题目:回文数组,挖矿】
c语言·python·蓝桥杯
qq_340474021 小时前
6.1 python加载win32或者C#的dll的方法
java·python·c#
强了一点2 小时前
U-Net网络+代码实操【保姆级教程理解一文全搞懂】
python
小小鸭程序员2 小时前
Spring Boot整合MyBatis-Plus实现CRUD操作教程
java·spring boot·python·mysql·spring
独好紫罗兰3 小时前
洛谷题单3-P5725 【深基4.习8】求三角形-python-流程图重构
开发语言·python·算法
曲幽3 小时前
Python本地部署Stable Diffusion实现在纯CPU环境下的实现
python·ai·stable diffusion·cpu·openvino·lcm
零一先生【Z】3 小时前
一、简单的 Django 服务
后端·python·django
CodeCraft Studio3 小时前
PDF处理控件Aspose.PDF教程:在Python、Java 和 C# 中旋转 PDF 文档
java·python·pdf
老大白菜3 小时前
Python FastAPI + Celery + RabbitMQ 分布式图片水印处理系统
分布式·python·fastapi