为什么需要虚拟环境
(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目录下创建虚拟环境,那么执行下面的命令就可以了:
python3 -m venv test_env(python -m venv 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 管理的包路径。下面命令可以过滤掉本地路径,只输出标准包名+版本:
pip list --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 -LsSf https://astral.sh/uv/install.sh | sh
(2)Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
(3)使用 pip 安装
pip install uv
3.1.2 验证安装
uv --version
3.2 核心概念
3.3 基础使用
3.3.1 创建虚拟环境
# 创建虚拟环境
uv venv
# 指定 Python 版本
uv venv --python 3.12
# 指定路径
uv venv /path/to/venv
3.3.2 激活虚拟环境
(1)Linux/macOS
source .venv/bin/activate
(2)Windows
.venv\Scripts\activate
3.3.3 安装包
# 基本安装(替代 pip install)
uv pip install requests
# 指定版本
uv pip install "requests>=2.28,<3.0"
# 从 requirements.txt 安装
uv pip install -r requirements.txt
# 安装到全局环境
uv pip install --system flask
# 安装开发依赖
uv pip install pytest black --dev
3.3.4 卸载包
uv pip uninstall requests
3.3.5 列出已安装的包
uv pip list
# 查看过期包
uv pip list --outdated
3.3.6 冻结依赖
# 生成 requirements.txt
uv pip freeze > requirements.txt
# 更严格的锁定文件
uv pip compile requirements.in -o requirements.txt
3.4 项目管理(UV 项目模式)
1. 初始化新项目
# 创建新项目
uv init my-project
cd my-project
# 在现有目录初始化
uv init --app # 应用程序
uv init --lib # 库
这会创建 pyproject.toml 文件。
2. 添加依赖
(1)添加运行时依赖
uv add requests flask
相当于pip以下步骤:
# 1. 激活虚拟环境
source .venv/bin/activate # Linux/Mac
# 或
.venv\Scripts\activate # Windows
# 2. 安装包
pip install vllm
# 3. 手动更新 requirements.txt(如果有)
pip freeze > requirements.txt
# 4. 手动更新 pyproject.toml(如果使用)
# 需要手动编辑文件添加依赖
(2)uv pip install vllm和pip install vllm相同
(3)从 requirements.txt 添加
uv add -r requirements.txt
3. 移除依赖
uv remove requests
uv remove --dev pytest
4. 锁文件和同步
# 生成锁文件
uv lock
# 同步环境到锁文件
uv sync
# 包含开发依赖
uv sync --dev
# 不安装包(仅创建环境)
uv sync --no-install
5. 运行命令
# 在项目环境中运行命令
uv run python script.py
uv run pytest
uv run black .
# 运行特定脚本
uv run -- script.py
3.5 Python 版本管理
# 安装特定 Python 版本
uv python install 3.12
uv python install 3.11.7
# 查看已安装的 Python
uv python list
# 查找可用的 Python 版本
uv python find 3.12
# 卸载 Python 版本
uv python uninstall 3.11
3.6 高级特性
1. 工具管理(替代 pipx)
# 安装工具
uv tool install ruff
uv tool install "black>=23.0"
# 运行临时工具
uvx ruff check .
uvx pycowsay "Hello UV!"
# 列出工具
uv tool list
# 卸载工具
uv tool uninstall ruff
2. 缓存管理
# 清理缓存
uv cache clean
# 查看缓存位置
uv cache dir
# 查看缓存大小
uv cache prune
3. 配置文件
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 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
# 永久配置(环境变量)
export UV_INDEX_URL="https://pypi.tuna.tsinghua.edu.cn/simple"
3.7 从其他工具迁移
从 pip 迁移
# pip install -> uv pip install
# pip freeze -> uv pip freeze
# 无需特别改动,直接替换命令
从 Poetry 迁移
# 导出 poetry 依赖
poetry export -f requirements.txt -o requirements.txt
# 初始化 uv 项目
uv init --name my-project
uv add -r requirements.txt
从 pipenv 迁移
pipenv requirements > requirements.txt
uv init
uv add -r requirements.txt

被折叠的 条评论
为什么被折叠?



