python虚拟环境

1. 什么是虚拟环境

为什么需要虚拟环境?这是由于 pip 的特性决定的,同一个环境下,仅允许安装每个包的一个版本。假设,这里有三个包,分别为:A、B 和 C。A 包依赖于 B 包的 v1.0 版本,而 C 包依赖于 B 包的 v2.0 版本。如果我安装了 v1.0 的 B 包,那么 C 包就无法使用;如果安装了 v2.0 的 B 包,那么 A 包就无法使用。因此,在同一个环境下,由于只能安装一个版本的 B 包,导致 A 包和 C 包无法同时使用。

2. 如何构建虚拟环境

  • 查看python版本
    python --version
    Python 3.12.9

2.1 创建python虚拟环境

创建python虚拟环境的方法有多种,这里主要介绍三种方法:

  1. venv 原生方法
    python -m venv ENV_DIR
    ENV_DIR 指定存放环境的目录,一般使用 venv,这是一个不成文的规定。
    查看生成的venv目录
venv
├── bin
│   ├── Activate.ps1
│   ├── activate
│   ├── activate.csh
│   ├── activate.fish
│   ├── pip
│   ├── pip3
│   ├── pip3.12
│   ├── python -> python3.12
│   ├── python3 -> python3.12
│   └── python3.12 -> /opt/homebrew/opt/python@3.12/bin/python3.12
├── include
│   └── python3.12
├── lib
│   └── python3.12
└── pyvenv.cfg

激活环境
source ENV_DIR/bin/activate
退出环境
deactivate
删除环境
直接删除venv目录即可

  1. pipenv
    pipenv 将包管理工具 pip 和虚拟环境创建工具 virtualenv 有机地结合到了一起,实现了开发环境和生产环境依赖的分离,旨在构建专属于 Python 的开发工作流,达到类似于 npm,yarn 等工具的效果。

安装
pip install pipenv
用法
环境管理
创建环境:pipenv install
激活环境:pipenv shell
退出环境:exit
删除环境:pipenv --rm
pipenv install 命令会根据系统默认 Python 版本来创建虚拟环境,并生成用于依赖包管理的 Pipfile 和 Pipfile.lock 文件。当你将项目分享给他人的时候,执行 pipenv install 命令会创建一个虚拟环境并自动安装 Pipfile 中指定的依赖包。

包管理
安装包:
用包名安装并写入 Pipfile 的生产环境:pipenv install requests
用包名安装并写入 Pipfile 的开发环境:pipenv install pytest --dev
安装 Pipfile 中列出的所有生产环境包:pipenv install
安装 Pipfile 中列出的所有开发环境包:pipenv install --dev
卸载包:
卸载指定包并从 Pipfile 中移除:pipenv uninstall requests
卸载所有生产环境包(不从Pipfile中移除):pipenv uninstall --all
卸载所有开发环境包并从 Pipfile 中移除:pipenv uninstall --all-dev

  1. poetry
    poetry 类似 pipenv,也是一个依赖包管理工具。在 pipenv 上做了一些改进,简化了 Python 开发工作流。当然,也能创建虚拟环境。

安装
pip install poetry
用法
创建环境:先执行 poetry init,一路回车确认。然后使用 poetry shell 创建环境
激活环境:pipenv shell(没有环境就创建环境并激活,有环境就直接激活)
退出环境:exit
删除环境:pipenv env remove <ENV_NAME>(ENV_NAME 可通过 poetry env list 查看)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容