当 pyenv 的下载器无法通过代理获取 Python 源码归档时,你可以改用 python-build 的缓存来提供它。

  1. 记下失败构建请求的 URL 和确切的归档文件名。
  2. 通过可用且已批准的下载途径取得同一个文件。保留文件名:.zip 不能替代请求的 .tar.xz。
  3. 把它放入缓存目录,并让重试指向该目录:
PYTHON_BUILD_CACHE_PATH=/path/to/archive-cache pyenv install VERSION

把 VERSION 换成你选定的定义。pyenv 在缓存目录存在时通常会使用它;PYTHON_BUILD_CACHE_PATH 会明确指定所选位置。

如果定义声明了校验和,python-build 会用缓存中的字节与它比对。仅仅文件名一致并不够。

如果重试通过了这个归档,接着又要下载别的东西,就检查新请求的包。一个定义可能需要的不止 Python 归档,机器仍然需要构建工具和库。要按实际请求去填缓存,而不是把一个文件当成完整的离线构建。

如果想恢复正常的下载,就找出并配置 python-build 所选的下载器。取得缓存文件的浏览器可能使用不同的代理设置。

相关文章