简介
对于想要创建健壮且可维护的软件项目的 Python 开发者来说,管理模块依赖是一项关键技能。本全面指南探讨了有效组织、跟踪和管理 Python 模块依赖的基本策略,帮助开发者简化开发工作流程并确保项目兼容性。
对于想要创建健壮且可维护的软件项目的 Python 开发者来说,管理模块依赖是一项关键技能。本全面指南探讨了有效组织、跟踪和管理 Python 模块依赖的基本策略,帮助开发者简化开发工作流程并确保项目兼容性。
Python 依赖项是项目正确运行所需的外部库或模块。这些是标准库之外提供特定功能的附加包,可帮助开发者节省时间并避免重复造轮子。
随语言安装一起提供的 Python 内置模块:
| 模块 | 用途 |
|---|---|
os |
操作系统交互 |
sys |
系统特定参数 |
math |
数学函数 |
从 PyPI 等包存储库安装的外部库:
## 导入标准库依赖项
import os
## 导入第三方依赖项
import requests
def fetch_data(url):
response = requests.get(url)
return response.json()
通过了解这些基础知识,开发者可以按照 LabEx 的推荐实践有效地管理 Python 项目依赖项。
虚拟环境是相互隔离的 Python 环境,可让你分别管理不同项目的依赖项。
## 安装 venv 模块
sudo apt-get update
sudo apt-get install python3-venv
## 创建虚拟环境
python3 -m venv myproject_env
## 激活环境
source myproject_env/bin/activate
## 安装一个包
pip install requests
## 生成需求文件
pip freeze > requirements.txt
## 从需求文件安装
pip install -r requirements.txt
| 工具 | 特性 | 使用场景 |
|---|---|---|
| pip | 基本的包管理 | 中小规模项目 |
| Poetry | 高级依赖项解析 | 复杂项目 |
| Pipenv | 结合了 pip 和 virtualenv | 全面的依赖项管理 |
## 示例 requirements.txt
requests>=2.25.0,<3.0.0
numpy~=1.19.2
pandas==1.2.4
## 检查依赖项树
pip dependency-tree
## 升级特定包
pip install --upgrade package_name
## 停用虚拟环境
deactivate
## 删除虚拟环境
rm -rf myproject_env
## 安装 Poetry
curl -sSL https://install.python-poetry.org | python3 -
## 初始化项目
poetry init
## 锁定依赖项
poetry lock
## 安装锁定的依赖项
poetry install
FROM python:3.9-slim
WORKDIR /app
## 复制依赖项文件
COPY pyproject.toml poetry.lock./
## 安装依赖项
RUN pip install poetry
RUN poetry config virtualenvs.create false
RUN poetry install --no-dev --no-interaction --no-ansi
## 复制项目文件
COPY..
CMD ["python", "main.py"]
| 技术 | 描述 | 工具 |
|---|---|---|
| 依赖项解析 | 自动解决冲突 | Poetry、Pipenv |
| 传递依赖项跟踪 | 管理嵌套依赖项 | pip-tools |
| 依赖项缓存 | 加快安装速度 | pip、Poetry |
## GitHub Actions 示例
name: Python 依赖项检查
on: [push]
jobs:
dependency-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: 设置 Python
uses: actions/setup-python@v2
- name: 安装依赖项
run: |
python -m pip install --upgrade pip
pip install safety
pip install -r requirements.txt
- name: 运行依赖项审计
run: safety check
## 安装 safety
pip install safety
## 扫描依赖项
safety check
## 生成详细报告
safety check --full-report
## 使用缓存进行 Pip 安装
pip install --cache-dir ~/.cache/pip package_name
## 并行安装依赖项
pip install -r requirements.txt --upgrade --parallel
## pyproject.toml 示例
[tool.poetry]
name = "advanced-project"
version = "0.1.0"
[tool.poetry.dependencies]
python = "^3.9"
requests = "^2.26.0"
numpy = {version = "^1.21.0", optional = true}
[tool.poetry.extras]
scientific = ["numpy"]
通过掌握 Python 依赖项管理技术,开发者可以创建更具可扩展性、可移植性和可重复性的软件项目。理解依赖项基础、使用高级管理工具并实施最佳实践,将显著提高 Python 生态系统中的代码质量和项目可维护性。