文章目录
- 为什么需要虚拟环境
- 1.venv
- 1.1 安装
- 1.2 创建虚拟环境
- 1.3 启用虚拟环境
- 1.4 安装/卸载包(依赖)
- 1.5 退出、删除虚拟环境
- 1.6 升级 pip
- 1.7使用 requirements.txt 管理依赖
- 1.8 pycharm配置venv
- 2.Miniconda
- 2.1 对于pip、conda、anaconda和miniconda的区别。
- 2.2 Miniconda下载
- 2.3 安装
- 2.4 测试运行代码
- 3.uv
- 3.1 安装 UV
- 3.1.1 各平台安装方式
- 3.1.2 验证安装
- 3.2 核心概念
- 3.3 基础使用
- 3.3.1 创建虚拟环境
- 3.3.2 激活虚拟环境
- 3.3.3 安装包
- 3.3.4 卸载包
- 3.3.5 列出已安装的包
- 3.3.6 冻结依赖
- 3.4 项目管理(UV 项目模式)
- 1. 初始化新项目
- 2. 添加依赖
- 3. 移除依赖
- 4. 锁文件和同步
- 5. 运行命令
- 3.5 Python 版本管理
- 3.6 高级特性
- 1. 工具管理(替代 pipx)
- 2. 缓存管理
- 3. 配置文件
- 4. 工作区(Workspaces)
- 5. 加速镜像源配置
- 3.7 从其他工具迁移
- 从 pip 迁移
- 从 Poetry 迁移
- 从 pipenv 迁移
为什么需要虚拟环境
(1)在同一个python环境中安装同一个包的不同版本,后安装的包会把原来安装的包覆盖掉。这样,如果同一台机器上两个项目依赖于相同包的不同版本,则会导致一些项目运行失败。
(2)例如项目1安装了mysqldb1.2.5版本,项目2又安装了mysqldb2.0.1版本。就会把mysqldb1.2.5版本给覆盖掉,影响了项目1的使用
(3)解决的方案就是:虚拟环境。虚拟环境是真实python环境的复制版本。在虚拟环境中使用的python是复制的python,安装python包也是安装在复制的python中。
1.venv
1.1 安装
(1)Python2 版本创建虚拟环境常使用一个名为 virtualenv 的第三方包。从 Python3.3 以后,标准库就内置了一个名为 venv 的模块,我们可以用它来创建虚拟环境,完全替换 virtualenv。
sudo apt install python3-venv(2)确保已安装 Python 3
venv 是 Python 的内置工具,确保 Python 版本为 3.3 或更高:
①python --version 或:
②python3 --version
(3) 检查是否支持 venv
①通过以下命令检查 venv 是否可用:
python -m venv --help
②如果出现帮助信息,则说明 venv 可以正常使用。
1.2 创建虚拟环境
(1)假设我们要在当前目录的test_env目录下创建虚拟环境,那么执行下面的命令就可以了:
python-mvenv test_env(2)指定 Python 版本,如果系统中安装了多个版本的 Python,可以通过指定 Python 解释器来创建环境:
①Linux下:python3.12 -m venv myenv
②Windows下:py -3.12 -m venv myenv
1.3 启用虚拟环境
(1)在Linux和Mac环境下,打开终端,执行下面的命令:
source ./test_env/bin/activate
(2)在Windows环境下,打开PowerShell,执行下面的命令:
.\test_env\Scripts\Activate.ps1
(3)激活成功后,命令提示符或终端前会显示虚拟环境的名称,例如:
(myenv) $1.4 安装/卸载包(依赖)
(1)虚拟环境启用后,就可以使用pip命令来安装需要的包:
pip install easydict(easydict是包名)
注意这里不需要root权限,因此无需添加sudo。
(2)在Linux和Mac系统上,安装的包放在./test_env/lib/pythonx.x/site-packages 目录下,在Windows系统上,是在./test_env/Lib/site-packages 目录下。
(3)使用包
①安装后,可以在命令行执行python 命令,进入Python交互式环境,然后import 安装的包,如果不报错,就说明安装成功了
python Python 3.9.6 (default, Sep 26 2022, 11:37:49) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import easydict >>>②或者也可以用一条命令python -c "import <package-name>来验证是否安装,没有报错就说明安装成功。然后就可以编写你的Python代码了,写完后用python my-code.py来执行Python代码。
(4)查看虚拟环境中的依赖
pip list
(5)卸载包(ultralytics-thop是包名)
pip uninstall ultralytics-thop -y(6)卸载虚拟环境中所有已安装的包
pip uninstall -y -r <(pip freeze)1.5 退出、删除虚拟环境
(1)退出虚拟的python环境,在命令行执行下面的命令即可:
deactivate
(2)删除虚拟环境:要删除虚拟环境,只需删除对应的文件夹:
rm -rf myenv
这样就完全移除了虚拟环境及其依赖
1.6 升级 pip
在新创建的虚拟环境中,建议将 pip 升级到最新版本:
pip install --upgrade pip
1.7使用 requirements.txt 管理依赖
(1)生成依赖文件
①将当前环境中的依赖保存到 requirements.txt 文件:
pip freeze>requirements.txt②在conda环境中,pip freeze 会输出 conda 管理的包路径。下面命令可以过滤掉本地路径,只输出标准包名+版本:
piplist--format=freeze>requirements.txt(2)安装依赖:
①根据 requirements.txt 文件安装依赖:
pip install-r requirements.txt②清华源下载:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/1.8 pycharm配置venv
(1)配置已有的venv,选择安装的env的Scripts下的python.exe
2.Miniconda
2.1 对于pip、conda、anaconda和miniconda的区别。
(1)conda是一个包和环境管理工具,它不仅能管理包,还能隔离和管理不同python版本的环境。类似管理nodejs环境的nvm工具。
(2)anaconda和miniconda都是conda的一种发行版。只是包含的包不同。
①anaconda包含了conda、python等180多个科学包及其依赖项,体格比较大。但很多东西你未必用到,所以才有mini版。
②miniconda是最小的conda安装环境,只有conda+python+pip+zlib和一些其他常用的包,体格非常迷你。
③miniconda所有的操作命令皆在命令行中完成,没有GUI界面。而anaconda是有界面的。
(3)pip也叫包管理器,和conda的区别是,pip只管理python的包,而conda可以安装所有语言的包。而且conda可以管理python环境,pip不行。
2.2 Miniconda下载
(1)推荐从清华镜像下载安装包,因为从官网下载比较慢
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
(2)打开网页后,下拉到最后找到Miniconda3-latest前缀的文件,或者从网页中 Ctrl+F 直接搜索Miniconda3-latest,都可以找到该安装软件
2.3 安装
(1)双击后点击下一步next
(2)I agree
(3)选择安装路径
(4)三个都勾选 → install,三个选项分别对应:
●创建快捷方式
●注册python3.12版本
●清除安装包
(5)Finish
(6)添加两个环境变量
(7)输入conda info输出下面代表安装成功
2.4 测试运行代码
(1)打开Anaconda PowerShell Prompt
(2)进入代码文件目录,并运行
3.uv
(1)uv 是一个用 Rust 编写的极速 Python 包和项目管理器,旨在替代 pip、pip-tools、pipx、poetry、pyenv、virtualenv 等多个工具。以下是最新版本的完整指南。
(2)uv提供了以下主要功能:
- uv pip- 兼容 pip 的接口,用于安装和管理包
- uv venv- 创建虚拟环境
- uv python- 管理 Python 版本
- uv run- 运行脚本和命令
- uv add/remove- 管理项目依赖
- uv lock/sync- 锁文件和同步依赖
(3)为什么选择 UV?
- 速度极快:Rust 编写,安装依赖速度是 pip 的 10-100 倍。
- 无感激活:进入项目文件夹自动激活虚拟环境,无需手动 source activate。
- 和 Conda 区别:专长管理 python,我们不需要它管理驱动和 CUDA
3.1 安装 UV
3.1.1 各平台安装方式
(1)macOS 和 Linux
curl-LsSfhttps://astral.sh/uv/install.sh|sh(2)Windows
powershell-ExecutionPolicy ByPass-c"irm https://astral.sh/uv/install.ps1 | iex"(3)使用 pip 安装
pipinstalluv3.1.2 验证安装
uv--version3.2 核心概念
3.3 基础使用
3.3.1 创建虚拟环境
# 创建虚拟环境uv venv# 指定 Python 版本uv venv--python3.12# 指定路径uv venv /path/to/venv3.3.2 激活虚拟环境
(1)Linux/macOS
source.venv/bin/activate(2)Windows
.venv\Scripts\activate3.3.3 安装包
# 基本安装(替代 pip install)uv pipinstallrequests# 指定版本uv pipinstall"requests>=2.28,<3.0"# 从 requirements.txt 安装uv pipinstall-rrequirements.txt# 安装到全局环境uv pipinstall--systemflask# 安装开发依赖uv pipinstallpytest black--dev3.3.4 卸载包
uv pip uninstall requests3.3.5 列出已安装的包
uv pip list# 查看过期包uv pip list--outdated3.3.6 冻结依赖
# 生成 requirements.txtuv pip freeze>requirements.txt# 更严格的锁定文件uv pip compile requirements.in-orequirements.txt3.4 项目管理(UV 项目模式)
1. 初始化新项目
# 创建新项目uv init my-projectcdmy-project# 在现有目录初始化uv init--app# 应用程序uv init--lib# 库这会创建pyproject.toml文件。
2. 添加依赖
(1)添加运行时依赖
uvaddrequests flask相当于pip以下步骤:
# 1. 激活虚拟环境source.venv/bin/activate# Linux/Mac# 或.venv\Scripts\activate# Windows# 2. 安装包pipinstallvllm# 3. 手动更新 requirements.txt(如果有)pip freeze>requirements.txt# 4. 手动更新 pyproject.toml(如果使用)# 需要手动编辑文件添加依赖(2)uv pip install vllm和pip install vllm相同
(3)从 requirements.txt 添加
uvadd-rrequirements.txt3. 移除依赖
uv remove requests uv remove--devpytest4. 锁文件和同步
# 生成锁文件uv lock# 同步环境到锁文件uvsync# 包含开发依赖uvsync--dev# 不安装包(仅创建环境)uvsync--no-install5. 运行命令
# 在项目环境中运行命令uv run python script.py uv run pytest uv run black.# 运行特定脚本uv run -- script.py3.5 Python 版本管理
# 安装特定 Python 版本uv pythoninstall3.12uv pythoninstall3.11.7# 查看已安装的 Pythonuv python list# 查找可用的 Python 版本uv pythonfind3.12# 卸载 Python 版本uv python uninstall3.113.6 高级特性
1. 工具管理(替代 pipx)
# 安装工具uv toolinstallruff uv toolinstall"black>=23.0"# 运行临时工具uvx ruff check.uvx pycowsay"Hello UV!"# 列出工具uv tool list# 卸载工具uv tool uninstall ruff2. 缓存管理
# 清理缓存uv cache clean# 查看缓存位置uv cachedir# 查看缓存大小uv cache prune3. 配置文件
UV 支持pyproject.toml配置:
[tool.uv] # 默认索引 URL index-url = "https://pypi.org/simple" # 额外索引 extra-index-url = ["https://example.com/simple"] # 并发下载数 concurrent-downloads = 50 # 缓存目录 cache-dir = "./custom-cache"4. 工作区(Workspaces)
在pyproject.toml中定义:
[tool.uv.workspace] members = ["packages/*"]5. 加速镜像源配置
# 临时使用镜像uv pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simple requests# 永久配置(环境变量)exportUV_INDEX_URL="https://pypi.tuna.tsinghua.edu.cn/simple"3.7 从其他工具迁移
从 pip 迁移
# pip install -> uv pip install# pip freeze -> uv pip freeze# 无需特别改动,直接替换命令从 Poetry 迁移
# 导出 poetry 依赖poetryexport-frequirements.txt-orequirements.txt# 初始化 uv 项目uv init--namemy-project uvadd-rrequirements.txt从 pipenv 迁移
pipenv requirements>requirements.txt uv init uvadd-rrequirements.txt