以下是你提供的 Poetry 现代化 Python 依赖管理指南(Ubuntu 22.04) 的完整 Markdown 格式内容:
sudo
权限的标准用户(非 root)使用官方安装脚本(自动隔离安装):
curl -sSL --tlsv1.2 https://install.python-poetry.org | python3 -
该命令会将 Poetry 安装到 $HOME/.local/bin/poetry
。
永久添加用户级 PATH
:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
poetry --version
# 预期输出:Poetry (version x.x.x)
poetry new sammy_poetry --src # 启用 src 目录结构
cd sammy_poetry
cd /path/to/existing_project
poetry init --python "^3.12" # 交互式配置
├── pyproject.toml # 项目元数据与依赖声明
├── README.md
├── src/ # 源码目录(--src 模式)
├── tests/ # 测试代码
└── dist/ # 构建产物(wheel/sdist)
poetry add requests pytest-cov
poetry add black --group dev
poetry add "django@^4.2" "celery@~5.3"
从 requirements.txt
导入:
while read pkg; do poetry add "$pkg"; done < requirements.txt
导出为传统格式:
poetry export -f requirements.txt --output requirements.txt
poetry env use /usr/bin/python3.12
poetry env info
poetry env list
推荐方式(子 shell)
poetry shell
替代方案(直接激活)
source $(poetry env info --path)/bin/activate
pyproject.toml
示例[tool.poetry]
name = "sammy_poetry"
version = "0.1.0"
[tool.poetry.dependencies]
python = "^3.12"
requests = { version = "^2.31", extras = ["security"] }
[tool.poetry.group.dev.dependencies]
pytest = "^7.4"
最小化安装生产依赖:
poetry install --no-dev --no-root
并行安装加速:
poetry config installer.max-workers 8
Poetry 自更新
poetry self update
依赖全量更新
预览:
poetry update --dry-run
执行:
poetry update
poetry show --tree
分析依赖树sudo
poetry cache clear --all pypi
poetry audit
poetry install --verify
poetry config repositories.my-pypi https://pypi.mycompany.com/simple
poetry source add my-pypi https://pypi.mycompany.com/simple
pyproject.toml
规范)通过此方案,你将获得:
✅ 可复现的依赖管理
✅ 隔离的虚拟环境
✅ 自动化的依赖解析
✅ 标准化的项目结构
如需进一步自动化部署或 CI/CD 集成,请参考 Poetry 官方文档。