SuperAPI AI 工具集

python-env

编程与开发

查看项目

更新于 10-15 10:59

技能介绍

Python 环境管理技能简介

该技能用于 Python 环境管理,主题是虚拟环境、依赖管理与 Python 版本控制。资料中给出的工具包括 venv(内置)、Poetry、uv、pyenv、Pipenv 和 conda。

用途

当用户提出“创建虚拟环境”“设置 Poetry”“管理 Python……”等需求时使用。目标是帮助完成项目隔离环境搭建、依赖安装与锁定、Python 解释器版本切换等任务。

主要能力

venv(内置)

  • 创建虚拟环境:python -m venv .venv 或 python3 -m venv .venv
  • 激活:Linux/macOS 使用 source .venv/bin/activate,Windows 使用 .venv\Scripts\activate
  • 退出:deactivate
  • 安装包:pip install requests flask,以及 pip install -r requirements.txt
  • 冻结依赖:pip freeze > requirements.txt
  • 升级 pip:pip install --upgrade pip

requirements.txt 写法

  • 生产环境固定版本:flask==3.0.0、requests==2.31.0、sqlalchemy==2.0.23
  • 库开发使用范围:flask>=3.0,<4.0;requests~=2.31(兼容发布,>=2.31, <3.0)
  • 带 extras:fastapi[all]==0.104.0
  • 从 git 安装:git+https://github.com/user/repo.git@main#egg=package
  • 分离开发依赖:pip install -r requirements.txt 与 pip install -r requirements-dev.txt

Poetry

  • 安装:curl -sSL https://install.python-poetry.org | python3 -
  • 新建项目:poetry new my-project;已有项目初始化:poetry init
  • 添加依赖:poetry add requests flask;开发组:poetry add pytest --group dev;版本范围:poetry add "sqlalchemy>=2.0,<3.0"
  • 移除依赖:poetry remove requests
  • 安装依赖:poetry install、poetry install --without dev
  • 更新依赖:poetry update、poetry update requests
  • 查看依赖:poetry show、poetry show --tree
  • 在虚拟环境中运行:poetry run python main.py、poetry run pytest
  • 激活 shell:poetry shell
  • 构建与发布:poetry build、poetry publish
  • 导出 requirements.txt:poetry export -f requirements.txt --output requirements.txt、poetry export -f requirements.txt --without-hashes
  • pyproject.toml 中可配置 [tool.poetry]、[tool.poetry.dependencies]、[tool.poetry.group.dev.dependencies]、[tool.poetry.scripts]

uv(快速 Python 包管理器)

  • 安装:curl -LsSf https://astral.sh/uv/install.sh | sh
  • 创建虚拟环境:uv venv
  • 安装包:uv pip install requests flask、uv pip install -r requirements.txt;资料称比 pip 快 10-100 倍
  • 从锁文件同步:uv pip sync requirements.txt
  • 编译 requirements(解析并锁定):uv pip compile requirements.in -o requirements.txt
  • 创建项目:uv init my-project
  • 添加依赖:uv add requests、uv add pytest --dev
  • 运行:uv run python main.py

pyenv(Python 版本管理)

  • 安装:curl https://pyenv.run | bash
  • 列出可用版本:pyenv install --list | grep "3."
  • 安装版本:pyenv install 3.12.1、pyenv install 3.11.7
  • 设置全局默认:pyenv global 3.12.1
  • 设置目录级版本:pyenv local 3.11.7(生成 .python-version)
  • 查看已安装:pyenv versions
  • 卸载:pyenv uninstall 3.10.0

Pipenv

  • 安装:pip install pipenv
  • 创建环境并安装:pipenv install、pipenv install requests、pipenv install pytest --dev
  • 在环境中运行:pipenv run python main.py、pipenv shell
  • 锁定依赖:pipenv lock
  • 从锁文件安装:pipenv install --deploy
  • 查看依赖图:pipenv graph

conda

  • 创建环境:conda create -n myenv python=3.12、conda create -n myenv python=3.12 numpy pandas
  • 激活/退出:conda activate myenv、conda deactivate
  • 安装包:conda install numpy pandas、conda install -c conda-forge package-name
  • 列出环境:conda env list
  • 导出环境:conda env export > environment.yml
  • 从文件创建:conda env create -f environment.yml
  • 删除环境:conda env remove -n myenv

常见问题

  • 创建 venv 后“pip not found”:python -m pip install --upgrade pip
  • 权限错误:pip install --user package-name
  • 版本冲突:pip install --force-reinstall package==1.0
  • 清理 pip 缓存:pip cache purge
  • 查看过时包:pip list --outdated
  • 验证安装:python -c "import package; print(package.version)"

参考资料

对比与迁移指南见 references/tools.md。

适用场景

适用于需要为 Python 项目建立隔离环境、锁定依赖版本、分离开发依赖、发布包或在不同 Python 版本间切换的开发工作。

限制

资料未提供各工具的收费、价格、平台支持范围、性能基准细节或安全注意事项;除 uv 的“比 pip 快 10-100 倍”外,未给出其它效果数据。