news 2026/7/5 20:54:12

python之venv、Miniconda、uv的使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python之venv、Miniconda、uv的使用

文章目录

  • 为什么需要虚拟环境
  • 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 安装

pipinstalluv

3.1.2 验证安装

uv--version

3.2 核心概念

3.3 基础使用

3.3.1 创建虚拟环境

# 创建虚拟环境uv venv# 指定 Python 版本uv venv--python3.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 pipinstallrequests# 指定版本uv pipinstall"requests>=2.28,<3.0"# 从 requirements.txt 安装uv pipinstall-rrequirements.txt# 安装到全局环境uv pipinstall--systemflask# 安装开发依赖uv pipinstallpytest black--dev

3.3.4 卸载包

uv pip uninstall requests

3.3.5 列出已安装的包

uv pip list# 查看过期包uv pip list--outdated

3.3.6 冻结依赖

# 生成 requirements.txtuv pip freeze>requirements.txt# 更严格的锁定文件uv pip compile requirements.in-orequirements.txt

3.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.txt

3. 移除依赖

uv remove requests uv remove--devpytest

4. 锁文件和同步

# 生成锁文件uv lock# 同步环境到锁文件uvsync# 包含开发依赖uvsync--dev# 不安装包(仅创建环境)uvsync--no-install

5. 运行命令

# 在项目环境中运行命令uv run python script.py uv run pytest uv run black.# 运行特定脚本uv run -- script.py

3.5 Python 版本管理

# 安装特定 Python 版本uv pythoninstall3.12uv pythoninstall3.11.7# 查看已安装的 Pythonuv python list# 查找可用的 Python 版本uv pythonfind3.12# 卸载 Python 版本uv python uninstall3.11

3.6 高级特性

1. 工具管理(替代 pipx)

# 安装工具uv toolinstallruff uv toolinstall"black>=23.0"# 运行临时工具uvx ruff check.uvx pycowsay"Hello UV!"# 列出工具uv tool list# 卸载工具uv tool uninstall ruff

2. 缓存管理

# 清理缓存uv cache clean# 查看缓存位置uv cachedir# 查看缓存大小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 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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 20:54:00

JVM GC 日志分析实战指南——别再只看 Full GC 次数了

JVM GC 日志分析实战指南——别再只看 Full GC 次数了 一、GC 问题要看上下文 JVM 排障时&#xff0c;Full GC 次数很显眼&#xff0c;但只看次数不够。一次 Full GC 可能是正常元数据回收&#xff0c;也可能是堆压力失控&#xff1b;年轻代 GC 频繁也可能已经严重影响延迟。GC…

作者头像 李华
网站建设 2026/7/5 20:52:53

洪水猛兽攻击之 XML Bomb

目录 原理说明 攻击原理&#xff1a; XML Bomb 类型&#xff1a; XML Bomb 攻击影响&#xff1a; 防御策略&#xff1a; 如何测试服务器的 XML Bomb 防御能力&#xff1f; XML Bomb 测试示例&#xff1a; 总结&#xff1a; 代码方案 1. Java (DOMParser) — 禁用外部…

作者头像 李华
网站建设 2026/7/5 20:52:12

题解:AcWing 828 模拟栈

【题目来源】 AcWing:828 模拟栈 - AcWing题库 【题目描述】 实现一个栈,栈初始为空,支持四种操作: push x – 向栈顶插入一个数 x x x; pop – 从栈顶弹出一个数; empty – 判断栈是否为空; query – 查询栈顶元素。 现在要对栈进行 M M

作者头像 李华
网站建设 2026/7/5 20:50:34

Wexflow安全部署指南:保护你的自动化流程免受攻击

Wexflow安全部署指南&#xff1a;保护你的自动化流程免受攻击 【免费下载链接】wexflow Workflow Automation Engine 项目地址: https://gitcode.com/gh_mirrors/we/wexflow 在当今数字化时代&#xff0c;自动化工作流引擎已成为企业提高效率的关键工具&#xff0c;但同…

作者头像 李华
网站建设 2026/7/5 20:49:24

如何通过5个关键策略实现Positron数据科学项目的企业级安全防护

如何通过5个关键策略实现Positron数据科学项目的企业级安全防护 【免费下载链接】positron Positron, a next-generation data science IDE 项目地址: https://gitcode.com/gh_mirrors/po/positron Positron作为下一代数据科学IDE&#xff0c;为开发者提供了强大的数据分…

作者头像 李华