文章目录
-
- 生成 requirements.txt: pip freeze > requirements.txt 示例内容: numpy==1.26.0 pandas==2.0.3 requests==2.31.0 安装依赖: pip install -r requirements.txt 离线安装: # 导出依赖包 pip download -r requirements.txt -d ./dependencies # 离线安装 pip install –no-index –find-links=./dependencies -r requirements.txt
- 无依赖版本锁定(需手动维护)。 无虚拟环境管理(需手动创建)。
-
- 创建项目: poetry new my_project cd my_project 添加依赖: poetry add numpy pandas poetry add –dev pytest # 开发依赖 安装依赖: poetry install 生成 requirements.txt: poetry export -f requirements.txt –output requirements.txt
- 自动管理虚拟环境,无需手动激活。 查看虚拟环境路径: poetry env info
- 配置 pyproject.toml: [tool.poetry] name = “my_project” version = “0.1.0” description = “A sample project” authors = [“Your Name <you@example.com>”] 发布到 PyPI: poetry publish –build
- Git 提交规范: 提交 requirements.txt(传统项目)。 提交 Pipfile.lock 或 poetry.lock(现代项目)。 禁止提交未锁定的依赖文件(如 Pipfile 或 pyproject.toml 中的模糊版本)。
- GitHub Actions 示例: jobs: build: steps: – uses: actions/checkout@v3 – name: Set up Python uses: actions/setup-python@v4 with: python-version: “3.10” – name: Install dependencies run: | python -m pip install –upgrade pip pip install -r requirements.txt
- FROM python:3.10-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD [“python”, “main.py”]
目录
- 🛠️ Python 项目依赖管理全流程指南
- 1. 环境准备
- 1.1 安装 Python
- 1.2 安装依赖管理工具
- 2. 项目初始化与依赖管理
- 2.1 创建项目结构
- 2.2 选择依赖管理工具
- 3. 依赖管理流程
- 3.1 使用 pip + requirements.txt(传统方式)
- ✅ 初始化依赖
- ❗ 问题
- 3.2 使用 pipenv(推荐)
- ✅ 初始化依赖
- ✅ 生成 requirements.txt
- ❗ 问题
- 3.3 使用 poetry(现代标准)
- ✅ 初始化依赖
- ✅ 虚拟环境管理
- ✅ 打包发布
- 3.4 使用 uv(高性能工具)
- ✅ 初始化依赖
- 4. 团队协作与部署
- 4.1 提交依赖文件
- 4.2 CI/CD 集成
- 4.3 Docker 镜像构建
- 5. 常见问题与解决方案
- 5.1 依赖冲突
- 5.2 依赖版本不一致
- 5.3 虚拟环境问题
- 6. 最佳实践
- 7. 附录:命令速查表
-
Linux/macOS:使用系统包管理器(apt/brew)或 pyenv。
-
Windows:从 Python 官网 下载安装,勾选 "Add to PATH"。
-
验证安装:
python3 --version
pip3 --version
Linux/macOS:使用系统包管理器(apt/brew)或 pyenv。
Windows:从 Python 官网 下载安装,勾选 "Add to PATH"。
验证安装:
| 工具 | 安装命令 | 说明 |
|---|---|---|
pip |
默认安装 | 标准包管理工具 |
pipenv |
pip install pipenv |
虚拟环境 + 依赖锁定 |
poetry |
`curl -sSL https://install.python-poetry.org | python3 -` |
uv |
pip install uv |
高性能依赖管理工具 |
my_project/
├── my_project/
│ ├── __init__.py
│ └── main.py
├── tests/
│ └── test_main.py
├── requirements.txt # 传统方式
├── Pipfile # pipenv
├── pyproject.toml # poetry/uv
└── README.md
根据团队需求选择工具:
| 工具 | 适用场景 |
|---|---|
pip + requirements.txt |
小型项目、快速部署 |
pipenv |
中小型项目、开发协作 |
poetry |
现代项目、打包发布 |
uv |
高性能需求、大规模项目 |
-
生成 requirements.txt:
pip freeze > requirements.txt
示例内容:
numpy==1.26.0
pandas==2.0.3
requests==2.31.0
-
安装依赖:
pip install -r requirements.txt
-
离线安装:
# 导出依赖包
pip download -r requirements.txt -d ./dependencies
# 离线安装
pip install --no-index --find-links=./dependencies -r requirements.txt
生成 requirements.txt:
示例内容:
安装依赖:
离线安装:
- 无依赖版本锁定(需手动维护)。
- 无虚拟环境管理(需手动创建)。
创建虚拟环境并安装依赖:
pipenv install
-
会自动生成
Pipfile和Pipfile.lock。 -
添加依赖:
pipenv install numpy pandas pipenv install --dev pytest # 开发依赖
-
安装依赖:
pipenv install
-
进入虚拟环境:
pipenv shell
pipenv lock -r > requirements.txt
pipenv 依赖 virtualenv,需注意路径冲突。
pipenv 依赖 virtualenv,需注意路径冲突。
-
创建项目:
poetry new my_project
cd my_project
-
添加依赖:
poetry add numpy pandas
poetry add --dev pytest # 开发依赖
-
安装依赖:
poetry install
-
生成 requirements.txt:
poetry export -f requirements.txt --output requirements.txt
创建项目:
添加依赖:
安装依赖:
生成 requirements.txt:
-
自动管理虚拟环境,无需手动激活。
-
查看虚拟环境路径:
poetry env info
自动管理虚拟环境,无需手动激活。
查看虚拟环境路径:
-
配置 pyproject.toml:
[tool.poetry]
name = "my_project"
version = "0.1.0"
description = "A sample project"
authors = ["Your Name <you@example.com>"]
-
发布到 PyPI:
poetry publish --build
配置 pyproject.toml:
发布到 PyPI:
-
创建虚拟环境:
uv venv
source venv/bin/activate # Unix
venvScriptsactivate # Windows
-
添加依赖:
uv add numpy pandas
uv add --dev pytest # 开发依赖
-
安装依赖:
uv sync
-
生成 requirements.txt:
uv pip freeze > requirements.txt
创建虚拟环境:
添加依赖:
安装依赖:
生成 requirements.txt:
- Git 提交规范:
- 提交
requirements.txt(传统项目)。
- 提交
Pipfile.lock 或 poetry.lock(现代项目)。
- 禁止提交未锁定的依赖文件(如
Pipfile 或 pyproject.toml 中的模糊版本)。
- 提交
requirements.txt(传统项目)。 - 提交
Pipfile.lock或poetry.lock(现代项目)。 - 禁止提交未锁定的依赖文件(如
Pipfile或pyproject.toml中的模糊版本)。
-
GitHub Actions 示例:
jobs:
build:
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
GitHub Actions 示例:
FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "main.py"]
-
解决方法:
-
使用 poetry 或 pipenv 自动解析依赖。
-
手动编辑 requirements.txt 指定版本:
numpy==1.26.0
pandas==2.0.3
解决方法:
-
使用
poetry或pipenv自动解析依赖。 -
手动编辑
requirements.txt指定版本:
- 解决方法:
- 强制提交
poetry.lock 或 Pipfile.lock。
- 定期运行
poetry update 或 pipenv update。
- 强制提交
poetry.lock或Pipfile.lock。 - 定期运行
poetry update或pipenv update。
-
解决方法:
-
删除旧虚拟环境并重新创建:
rm -rf venv/ # 或 poetry env remove
poetry install
解决方法:
-
删除旧虚拟环境并重新创建:
- 依赖版本锁定:
- 始终使用
poetry.lock 或 Pipfile.lock 确保版本一致性。
- 虚拟环境隔离:
- 每个项目使用独立虚拟环境(
venv/poetry/pipenv)。
- 依赖更新:
- 定期运行
poetry update 或 pipenv update。
- 开发/生产依赖分离:
- 使用
--dev 标记区分开发依赖(如 pytest)。
- 文档化:
- 在
README.md 中明确依赖安装步骤。
- 始终使用
poetry.lock或Pipfile.lock确保版本一致性。
- 每个项目使用独立虚拟环境(
venv/poetry/pipenv)。
- 定期运行
poetry update或pipenv update。
- 使用
--dev标记区分开发依赖(如pytest)。
- 在
README.md中明确依赖安装步骤。
| 任务 | pip |
pipenv |
poetry |
uv |
|---|---|---|---|---|
| 安装依赖 | pip install -r requirements.txt |
pipenv install |
poetry install |
uv sync |
| 添加依赖 | pip install package |
pipenv install package |
poetry add package |
uv add package |
| 生成锁文件 | 无 | pipenv lock |
poetry lock |
uv pip freeze > requirements.txt |
| 虚拟环境 | 手动创建 | pipenv shell |
poetry env use |
uv venv |
| 导出依赖 | pip freeze > requirements.txt |
pipenv lock -r > requirements.txt |
poetry export -f requirements.txt |
uv pip freeze > requirements.txt |
通过以上流程,你的 Python 项目可以实现与 Java、Go 类似的依赖管理能力,确保开发、测试和生产环境的一致性。
到此这篇关于Python 依赖管理的工具与规范的文章就介绍到这了,更多相关Python 依赖管理内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- Python Poetry实现高效依赖管理的新手指南
- Python虚拟环境与依赖管理使用方法全指南
- Python Poetrya项目依赖管理安装使用详解
- Python依赖管理及打包工具Poetry使用规范
- python的依赖管理的实现