当前位置: 首页 > web >正文

Ubuntu 22.04 高效Python依赖管理指南

以下是你提供的 Poetry 现代化 Python 依赖管理指南(Ubuntu 22.04) 的完整 Markdown 格式内容:


Poetry 现代化 Python 依赖管理指南(Ubuntu 22.04)

环境要求

  • Ubuntu 22.04 LTS 服务器
  • 具备 sudo 权限的标准用户(非 root)
  • 已配置的基础安全防护(防火墙/UFW)
  • Python ≥ 3.7(推荐 3.12+)

一、Poetry 安装与配置

安全安装

使用官方安装脚本(自动隔离安装):

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

四、虚拟环境管理

指定 Python 解释器

poetry env use /usr/bin/python3.12

环境信息查询

poetry env info

多环境管理

poetry env list

环境激活(Poetry 2.x+)

推荐方式(子 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

遵循的技术规范

  • PEP 517(构建系统标准)
  • PEP 518(pyproject.toml 规范)
  • Semantic Versioning 2.0.0

优势总结

通过此方案,你将获得:

✅ 可复现的依赖管理
✅ 隔离的虚拟环境
✅ 自动化的依赖解析
✅ 标准化的项目结构


如需进一步自动化部署或 CI/CD 集成,请参考 Poetry 官方文档。

http://www.xdnf.cn/news/8821.html

相关文章:

  • 小程序使用web-view 修改顶部标题 安全认证文件部署在nginx
  • 疫情社区管理登记系统
  • 基于点标注的弱监督目标检测方法研究
  • springboot中拦截器配置使用
  • NeuralRecon技术详解:从单目视频中实现三维重建
  • 「OC」源码学习——KVO底层原理探究
  • 批量获取电商商品数据的解决方案|API接口自动化商品采集|item_get 接口详解
  • Vue.js教学第十五章:深入解析Webpack与Vue项目实战
  • 消息队列的使用
  • ClickHouse讲解
  • Qwen2.5 VL 自定义模型的回复数量
  • 基于文本挖掘与情感分析的B站《唐探1900》弹幕研究
  • Qt for Android 安卓低功耗蓝牙(BLE)开发环境搭建
  • 打卡day36
  • HUAWEI交换机配置镜像口验证(eNSP)
  • --legacy-peer-deps 是什么意思
  • 【不背八股】1.if __name__ == “__main__“ 有什么作用?
  • 【redis】redis和hiredis的基本使用
  • RabbitMQ 可靠性保障:消息确认与持久化机制(一)
  • day01
  • 算法打卡第六天
  • C++23 对部分特性的 constexpr 支持
  • 历年华南理工大学保研上机真题
  • 阿里千问系列:Qwen3技术报告解读(下)
  • 美团2025年校招笔试真题手撕教程(二)
  • 第一章 半导体基础知识
  • 腾讯云国际站可靠性测试
  • 13软件测试用例设计方法-场景法
  • UnLua源码分析(二)IUnLuaInterface
  • 并发编程(6)