PDM项目配置管理完全指南

PDM项目配置管理完全指南

pdm A modern Python package and dependency manager supporting the latest PEP standards pdm 项目地址: https://gitcode.com/gh_mirrors/pd/pdm

前言

PDM作为现代Python包和依赖管理工具,提供了灵活的配置系统来满足不同场景下的开发需求。本文将全面介绍PDM的配置管理功能,帮助开发者高效管理项目设置。

基础配置操作

PDM的配置系统采用类似Git的设计理念,通过pdm config命令进行管理:

  1. 查看全部配置

    pdm config
    
  2. 查询单个配置项

    pdm config pypi.url
    
  3. 修改配置(默认全局生效):

    pdm config pypi.url "https://test.pypi.org/simple"
    
  4. 项目级配置(添加--local参数):

    pdm config --local pypi.url "https://test.pypi.org/simple"
    

项目级配置会保存在项目根目录的pdm.toml文件中,而全局配置则存储在用户目录下。

配置文件加载机制

PDM按照以下优先级顺序加载配置:

  1. 项目配置:<项目根目录>/pdm.toml
  2. 用户配置:<用户配置目录>/config.toml
  3. 系统配置:<系统配置目录>/config.toml

各操作系统下的配置目录位置有所不同:

  • Linux:遵循XDG规范,通常在~/.config/pdm
  • macOS:~/Library/Application Support/pdm
  • Windows:%USERPROFILE%\AppData\Local\pdm\pdm

Python解释器管理

PDM支持从多种来源查找Python解释器:

# 仅使用Rye管理的解释器
pdm config python.providers rye

# 使用pyenv和asdf管理的解释器
pdm config python.providers pyenv,asdf

支持的来源包括:venv、PATH环境变量、pyenv、rye、asdf和Windows注册表等。

依赖解析配置

预发布版本处理

默认情况下,PDM会忽略预发布版本,除非没有稳定版本可用。可通过配置修改此行为:

[tool.pdm.resolution]
allow-prereleases = true

排除特定包

从2.12.0版本开始,可以完全排除某些包及其依赖:

[tool.pdm.resolution]
excludes = ["requests"]

包源管理

配置包索引

有两种方式配置包源:

  1. 通过pyproject.toml

    [[tool.pdm.source]]
    name = "private"
    url = "https://private.pypi.org/simple"
    verify_ssl = true
    
  2. 通过pdm config命令

    pdm config pypi.url "https://test.pypi.org/simple"
    pdm config pypi.extra.url "https://extra.pypi.org/simple"
    

包源优先级控制

默认情况下,PDM平等对待所有源。如需设置优先级:

[tool.pdm.resolution]
respect-source-order = true

包与源绑定

可以将特定包绑定到指定源:

[[tool.pdm.source]]
name = "private"
url = "https://private.pypi.org/simple"
include_packages = ["foo", "foo-*"]
exclude_packages = ["bar-*"]

认证信息管理

可通过环境变量注入认证信息:

[[tool.pdm.source]]
name = "private"
url = "https://${PRIVATE_PYPI_USERNAME}:${PRIVATE_PYPI_PASSWORD}@private.pypi.org/simple"

中央安装缓存

PDM支持跨项目共享包安装,节省磁盘空间:

# 启用缓存
pdm config install.cache on

# 查看缓存信息
pdm cache info

支持两种链接方式:

  • symlink(默认):创建符号链接
  • hardlink:创建硬链接

发布配置

配置发布到PyPI或其他仓库的凭据:

# 配置PyPI发布信息
pdm config repository.pypi.username "__token__"
pdm config repository.pypi.password "my-pypi-token"

# 配置私有仓库
pdm config repository.company.url "https://pypi.company.org/legacy/"

密码管理

使用keyring

安装keyring后,PDM会将密码存储在系统密钥环中:

# 安装keyring支持
pdm self add keyring

Azure Artifacts支持

对于Azure Artifacts,需额外安装:

pdm self add keyring artifacts-keyring

其他实用配置

全局命令选项

从2.7.0版本开始,可以为命令预设选项:

[tool.pdm.options]
add = ["--no-isolation", "--no-self"]
install = ["--no-self"]

忽略包警告

从2.10.0版本开始,可以忽略特定包的版本警告:

[tool.pdm]
ignore_package_warnings = ["scipy", "tensorflow-*"]

总结

PDM提供了强大而灵活的配置系统,覆盖了从依赖解析到包发布的完整开发生命周期。通过合理利用这些配置选项,开发者可以构建出既符合团队规范又能满足个人偏好的Python开发环境。

pdm A modern Python package and dependency manager supporting the latest PEP standards pdm 项目地址: https://gitcode.com/gh_mirrors/pd/pdm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杜默业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值