IndieBits - 独立开发碎碎念

探索海外独立开发 | 学习 · 思考 · 实践

Python 开发环境终极备忘单 (Cheatsheet)

在 Python 开发中,为每个项目创建独立的虚拟环境是至关重要的最佳实践。这可以防止不同项目间的依赖冲突。本备忘单涵盖了三种主流的环境和包管理工具。

  • venv + pip: Python 官方标配,轻量级,适用于大多数 Web 和通用项目。
  • Conda: 强大的跨平台环境和包管理器,尤其擅长管理非 Python 依赖(如 CUDA、C++ 库),是数据科学领域的首选。
  • uv: 由 ryeruff 的作者开发的下一代 Python 包管理工具,用 Rust 编写,速度极快,旨在成为 pipvenv 的极速替代品。

1. 安装

工具 说明 安装命令
pip & venv 通常随 Python 一起安装,无需额外操作。 python --versionpip --version 检查是否可用。
Conda 推荐安装 Miniconda,它是一个轻量级的 Conda 安装程序。 1. 访问 Miniconda 官网 下载对应系统的安装包。
2. 按照图形化或命令行指引完成安装。
uv 一个极速的 Python 包安装器和解析器。 macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh

Windows (PowerShell):
irm https://astral.sh/uv/install.ps1 | iex

2. 虚拟环境管理

venv (Python 内置)

用途 命令
创建环境 python -m venv .venv
(推荐命名为 .venv)
激活环境 (macOS/Linux) source .venv/bin/activate
激活环境 (Windows CMD) .\.venv\Scripts\activate
激活环境 (Windows PowerShell) .\.venv\Scripts\Activate.ps1
(可能需要先执行 Set-ExecutionPolicy Unrestricted -Scope Process)
退出环境 deactivate

Conda

用途 命令
创建环境 conda create --name myenv python=3.11
(创建名为 myenv 的环境,并指定 Python 版本)
激活环境 conda activate myenv
退出环境 conda deactivate
查看所有环境 conda env listconda info --envs
删除环境 conda env remove --name myenv
克隆环境 conda create --name newenv --clone oldenv

uv

uvvenv 的创建和激活步骤简化了。

用途 命令
创建并激活环境 uv venv
(它会在当前目录创建 .venv 并自动激活。如果 .venv 已存在,则直接激活)
退出环境 deactivate
(uv 只是封装了 venv,所以退出方式相同)

3. 包管理 (Package Management)

前提: 在执行以下所有包管理命令前,请务必先激活你的虚拟环境

pip (在 venv 环境中使用)

用途 命令
安装包 pip install requests
安装特定版本 pip install requests==2.28.0
从文件安装 pip install -r requirements.txt
卸载包 pip uninstall requests
查看已安装的包 pip list
生成依赖文件 pip freeze > requirements.txt
(这是最常用的方式,会包含所有包的精确版本)
更新包 pip install --upgrade requests

Conda

用途 命令
安装包 conda install numpy
从特定渠道安装 conda install -c conda-forge matplotlib
(conda-forge 是最流行的社区渠道)
安装特定版本 conda install numpy=1.23.0
从文件安装 conda env update --file environment.yml --prune
卸载包 conda remove numpy
查看已安装的包 conda list
生成环境文件 conda env export > environment.yml
(environment.yml 包含了环境名、渠道和所有包,更具可复现性)
更新包 conda update numpy
更新所有包 conda update --all

uv (作为 pip 的高速替代品)

uv 的命令设计与 pip 高度兼容。在已激活的 .venv 环境中,你可以用 uv pip 来代替 pip

用途 命令
安装包 uv pip install requests
(速度通常比 pip 快几个数量级)
从文件安装 uv pip install -r requirements.txt
卸载包 uv pip uninstall requests
查看已安装的包 uv pip list
生成依赖文件 uv pip freeze > requirements.txt
同步依赖 uv pip sync requirements.txt
(一个强大的命令,它会确保环境中的包严格与文件内容一致,不多也不少)

4. 常用工作流对比

场景 venv + pip (标准) Conda (数据科学) venv + uv (现代 & 高效)
1. 新建项目 python -m venv .venv conda create -n proj_env python=3.11 uv venv
2. 激活环境 source .venv/bin/activate conda activate proj_env (上一步已自动激活)
3. 安装依赖 pip install -r requirements.txt conda env update -f environment.yml uv pip install -r requirements.txt
4. 添加新包 pip install pandas conda install pandas uv pip install pandas
5. 保存依赖 pip freeze > requirements.txt conda env export > environment.yml uv pip freeze > requirements.txt
6. 离开项目 deactivate conda deactivate deactivate

最佳实践建议:

  • 通用/Web 开发: venv + uv 是一个极佳的组合,兼具标准性和极致的速度。
  • 数据科学/机器学习: Conda 仍然是首选,因为它能轻松处理复杂的非 Python 依赖。
  • 始终使用 .gitignore: 将你的虚拟环境目录 (如 .venv/myenv/) 添加到 .gitignore 文件中,避免将庞大的环境文件提交到版本控制中。
0%