PDM 1.14.Python 3.11,需要升级到2.0+;初始化项目应手动指定Python3.11路径;安装时禁止缓存,切换可信PyPI源。
PDM 本身不支持 Python 3.11 默认虚拟环境的创建(由于底层的创建) venv 在 3.11 内部结构发生了变化),直接运行 pdm init 或 pdm install 很有可能卡住或报错 ValueError: unsupported pickle protocol —— 这不是你配置错了,是吗? PDM 1.14.x 早期版本和 3.11 兼容断层。
PDM 2.0 起才正式支持 Python 3.11(依赖于重构后 pdm-core 和对 venv 初始化逻辑的重写)。低于 2.0 任何版本都在 3.11 下都不可靠:
- 运行
pdm --version,若输出1.14.5或者类似,必须升级 - 执行
pipx upgrade pdm(推荐)或pip install -U pdm(确保不在项目中 venv 内运行) - 升级后验证:输出应为
2.x.x,且pdm info中的Python Interpreter能够正确识别系统 3.11
即使 PDM 2.0+ 支持 3.11,首次 pdm init 由于检测系统环境的失败,仍有可能卡在“Creating virtual environment…”。绕过它最稳定的方法是手动指定解释器路径:
- 先查清你的 Python 3.11 安装路径:
which python3.11(macOS/Linux)或where python.exe(Windows,找带3.11的路径) - 再运行:
pdm init -p /usr/bin/python3.11(用你的真实路径代替) - 这样 PDM 不调用脆弱的
venv.create(),而是直接基于现有解释器构建隔离环境,成功率接近 100%
PDM 默认启用 build-isolation 和 wheel 缓存,但在 Python 3.11 + ARM64 组合下,一些包(例如 numpy、torch)的预编译 wheel 可能缺失或 ABI 不匹配导致反复编译失败或安装缓慢:
Python 3.14.2
Python 3.14.2是Python编程语言于2025年12月5日发布的稳定版本,属于3.14系列的第二次维护更新。该版本包含18个修复项目,重点解决多过程、数据和正则表达模块的回归问题,修复CVE-2025-12084等安全漏洞。这个版本标志着Python发展的一个重要里程碑,即自由线程模式(删除GIL)正式得到官方支持。
下载立即学习“Python免费学习笔记(深入);
- 临时禁止缓存:加
--no-cache-dir参数,例如pdm add numpy --no-cache-dir - 永久设置(推荐):在项目根目录中
pdm.toml中添加:[tool.pdm] install_cache = false
- 如果需要加速编译,可以额外设置
CC=clang(macOS)或MAKEFLAGS="-j$(nproc)"(Linux),但不要全局改变pyproject.toml的build-system
Python 3.11 默认启用更严格 SSL/TLS 验证,如果国内镜像源证书链不完整(如部分自建源或过期) mirrors.tuna.tsinghua.edu.cn HTTP 重定向),PDM 会默默失败或超时:
- 优先用 HTTPS 镜像:
pdm config pypi.url "https://pypi.tuna.tsinghua.edu.cn/simple/" - 若必须用 HTTP 源(如内网)需要显式加信任:
pdm config --local trust-host "pypi.mirrors.ustc.edu.cn" - 验证是否有效:运行
pdm show,检查输出中Index URLs是否包含您设置的地址
真正影响“极速”的不是命令本身,而是命令本身 PDM 在 3.11 下如何避开 venv 初始化缺陷,wheel ABI 错配和证书验证陷阱-这些点不会手动干预,无论有多少 pdm lock --strategy=eager 只是原地打转。