python版本管理和依赖管理的最佳实践,pyenv + uv

一、最佳实践

1、创建项目目录
bash 复制代码
mkdir -p ~/Desktop/code/python/test
cd ~/Desktop/code/python/test
2、进入项目目录后,指定该项目使用的python版本
bash 复制代码
pyenv local 版本号

执行该命令后,会在项目目录下生成.python-version 文件,其中记录了指定的Python版本(例如 3.12)

3、在项目目录下,使用uv创建独立环境,以达到各项目依赖独立、避免多项目依赖冲突的目的
bash 复制代码
uv venv

执行该命令后,项目目录下会生成.venv目录,类似PHP语言中的vendor目录

注:安装uv
bash 复制代码
pip install uv

# 验证安装成功
uv --version
# 成功会显示类似:uv 0.8.16 (2de677b0d 2025-09-09)
4、激活独立虚拟环境
bash 复制代码
source .venv/bin/activate

执行该命令后,命令行工具前会有一个 (.venv) 标识

如果想要退出虚拟环境命令:
bash 复制代码
deactivate
注意事项

每次开启新窗口后,都要重新执行一下命令 source .venv/bin/activate激活虚拟环境,否则会使用全局的python版本和依赖,如果不想每次打开新窗口后都执行该命令,可以使用 direnv 工具

bash 复制代码
# 安装 direnv
brew install direnv # macOS
sudo apt install direnv # Linux

在项目目录下创建 .envrc 文件,写入 source .venv/bin/activate;

bash 复制代码
vi .envrc

source .venv/bin/activate

执行 direnv allow 授权,之后进入项目目录会自动激活虚拟环境,离开目录会自动退出。

5、验证环境是否正确激活
bash 复制代码
# 查看当前Python路径(应指向.venv内)
which python
# 查看已安装依赖(应显示在.venv内)
uv pip list
6、安装项目依赖
bash 复制代码
uv pip install requests

依赖会被安装在 项目目录/.venv/lib/python3.12(之前指定的python版本)/site-packages/requests/

7、导出依赖清单到 requirements.txt,方便后续迁移或团队协作
bash 复制代码
uv pip freeze > requirements.txt

二、想要更改项目使用的python版本如何做

1、进入项目目录,删除旧的虚拟环境
bash 复制代码
cd 项目目录
rm -rf .venv  # 删除旧的虚拟环境
2、指定python版本
bash 复制代码
pyenv local 版本号
3、重新创建虚拟环境
bash 复制代码
uv venv
4、激活虚拟环境
bash 复制代码
source .venv/bin/activate 
5、验证环境是否正确激活
bash 复制代码
# 查看当前Python路径(应指向.venv内)
which python
# 查看已安装依赖(应显示在.venv内)
uv pip list
6、重新安装依赖
bash 复制代码
uv pip install -r requirements.txt # 如果之前导出过requirements.txt
或
uv pip install requests

原文链接:python版本管理和依赖管理的最佳实践,pyenv + uv

相关推荐
想会飞的蒲公英12 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
SeaTunnel13 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记13 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
CCPC不拿奖不改名13 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code14 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook14 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
renwen157915 小时前
Blender简单的UV纹理绘制
blender·uv
我的xiaodoujiao16 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
weixin_4080996717 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
cll_86924189117 小时前
DTF墨水、热升华墨水、DTG墨水和UV墨水:主要区别
uv