文章目录为什么需要虚拟环境1.venv1.1 安装1.2 创建虚拟环境1.3 启用虚拟环境1.4 安装/卸载包(依赖)1.5 退出、删除虚拟环境1.6 升级 pip1.7使用 requirements.txt 管理依赖1.8 pycharm配置venv2.Miniconda2.1 对于pip、conda、anaconda和miniconda的区别。2.2 Miniconda下载2.3 安装2.4 测试运行代码3.uv3.1 安装 UV3.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. 工具管理替代 pipx2. 缓存管理3. 配置文件4. 工作区Workspaces5. 加速镜像源配置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.venv1.1 安装1Python2 版本创建虚拟环境常使用一个名为 virtualenv 的第三方包。从 Python3.3 以后标准库就内置了一个名为 venv 的模块我们可以用它来创建虚拟环境完全替换 virtualenv。sudo apt install python3-venv2确保已安装 Python 3venv 是 Python 的内置工具确保 Python 版本为 3.3 或更高①python --version 或②python3 --version3 检查是否支持 venv①通过以下命令检查 venv 是否可用python -m venv --help②如果出现帮助信息则说明 venv 可以正常使用。1.2 创建虚拟环境1假设我们要在当前目录的test_env目录下创建虚拟环境那么执行下面的命令就可以了python-mvenv test_env2指定 Python 版本如果系统中安装了多个版本的 Python可以通过指定 Python 解释器来创建环境①Linux下python3.12 -m venv myenv②Windows下py -3.12 -m venv myenv1.3 启用虚拟环境1在Linux和Mac环境下打开终端执行下面的命令source ./test_env/bin/activate2在Windows环境下打开PowerShell执行下面的命令:.\test_env\Scripts\Activate.ps13激活成功后命令提示符或终端前会显示虚拟环境的名称例如(myenv) $1.4 安装/卸载包(依赖)1虚拟环境启用后就可以使用pip命令来安装需要的包pip install easydicteasydict是包名注意这里不需要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 list5卸载包ultralytics-thop是包名pip uninstall ultralytics-thop -y6卸载虚拟环境中所有已安装的包pip uninstall -y -r (pip freeze)1.5 退出、删除虚拟环境1退出虚拟的python环境在命令行执行下面的命令即可deactivate2删除虚拟环境要删除虚拟环境只需删除对应的文件夹rm -rf myenv这样就完全移除了虚拟环境及其依赖1.6 升级 pip在新创建的虚拟环境中建议将 pip 升级到最新版本pip install --upgrade pip1.7使用 requirements.txt 管理依赖1生成依赖文件①将当前环境中的依赖保存到 requirements.txt 文件pip freezerequirements.txt②在conda环境中pip freeze 会输出 conda 管理的包路径。下面命令可以过滤掉本地路径只输出标准包名版本piplist--formatfreezerequirements.txt2安装依赖①根据 requirements.txt 文件安装依赖pip install-r requirements.txt②清华源下载pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/1.8 pycharm配置venv1配置已有的venv选择安装的env的Scripts下的python.exe2.Miniconda2.1 对于pip、conda、anaconda和miniconda的区别。1conda是一个包和环境管理工具它不仅能管理包还能隔离和管理不同python版本的环境。类似管理nodejs环境的nvm工具。2anaconda和miniconda都是conda的一种发行版。只是包含的包不同。①anaconda包含了conda、python等180多个科学包及其依赖项体格比较大。但很多东西你未必用到所以才有mini版。②miniconda是最小的conda安装环境只有condapythonpipzlib和一些其他常用的包体格非常迷你。③miniconda所有的操作命令皆在命令行中完成没有GUI界面。而anaconda是有界面的。3pip也叫包管理器和conda的区别是pip只管理python的包而conda可以安装所有语言的包。而且conda可以管理python环境pip不行。2.2 Miniconda下载1推荐从清华镜像下载安装包因为从官网下载比较慢https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/2打开网页后下拉到最后找到Miniconda3-latest前缀的文件或者从网页中 CtrlF 直接搜索Miniconda3-latest,都可以找到该安装软件2.3 安装1双击后点击下一步next2I agree3选择安装路径4三个都勾选 → install三个选项分别对应●创建快捷方式●注册python3.12版本●清除安装包5Finish6添加两个环境变量7输入conda info输出下面代表安装成功2.4 测试运行代码1打开Anaconda PowerShell Prompt2进入代码文件目录并运行3.uv1uv 是一个用 Rust 编写的极速 Python 包和项目管理器旨在替代 pip、pip-tools、pipx、poetry、pyenv、virtualenv 等多个工具。以下是最新版本的完整指南。2uv提供了以下主要功能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我们不需要它管理驱动和 CUDA3.1 安装 UV3.1.1 各平台安装方式1macOS 和 Linuxcurl-LsSfhttps://astral.sh/uv/install.sh|sh2Windowspowershell-ExecutionPolicy ByPass-cirm https://astral.sh/uv/install.ps1 | iex3使用 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 激活虚拟环境1Linux/macOSsource.venv/bin/activate2Windows.venv\Scripts\activate3.3.3 安装包# 基本安装替代 pip installuv pipinstallrequests# 指定版本uv pipinstallrequests2.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 freezerequirements.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 freezerequirements.txt# 4. 手动更新 pyproject.toml如果使用# 需要手动编辑文件添加依赖2uv 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 toolinstallblack23.0# 运行临时工具uvx ruff check.uvx pycowsayHello 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-cache4. 工作区Workspaces在pyproject.toml中定义[tool.uv.workspace] members [packages/*]5. 加速镜像源配置# 临时使用镜像uv pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simple requests# 永久配置环境变量exportUV_INDEX_URLhttps://pypi.tuna.tsinghua.edu.cn/simple3.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 requirementsrequirements.txt uv init uvadd-rrequirements.txt