You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

作为pypdf维护者,如何在pyproject.toml指定需安装任一加密包?

配置pyproject.toml支持二选一加密依赖

你需要调整可选依赖配置,让Python 3.7+版本用户能任选cryptography或PyCryptodome,同时保留Python 3.6仅支持PyCryptodome的规则。以下是两种可行方案:

方案一:单可选依赖组(自动安装所有加密包)

这种配置下,用户执行pip install pypdf[crypto]会同时安装两个兼容的加密包,虽然冗余但不影响功能:

[project.optional-dependencies]
crypto = [
    "cryptography; python_version >= '3.7'",
    "PyCryptodome; python_version >= '3.6'"
]

方案二:拆分两个可选依赖组(用户自主选择)

如果想让用户精准选择单个加密包,可拆分出两个独立的可选依赖组:

[project.optional-dependencies]
crypto-cryptography = [
    "cryptography; python_version >= '3.7'"
]
crypto-pycryptodome = [
    "PyCryptodome; python_version >= '3.6'"
]

用户可根据需求选择安装:

  • pip install pypdf[crypto-cryptography](仅安装cryptography)
  • pip install pypdf[crypto-pycryptodome](仅安装PyCryptodome)

两种方案各有优劣:

  • 方案一操作简单,适合不想纠结的用户
  • 方案二更轻量化,适合对依赖体积有要求的场景

内容的提问来源于stack exchange,提问作者Martin Thoma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 15:01:27