【问题标题】:pyenv failed to download a existing version of Pythonpyenv 无法下载现有版本的 Python
【发布时间】:2019-01-01 00:44:43
【问题描述】:

根据blog post,我最近安装了 pyenv 并尝试安装一个 python 版本。我运行了一些命令,但遇到了错误,我不确定如何解决。

$ pyenv install 3.6.6
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.6.tar.xz...
-> https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
error: failed to download Python-3.6.6.tar.xz

BUILD FAILED (OS X 10.12.6 using python-build 20180424)

【问题讨论】:

  • 我也面临同样的问题。终端什么也没说
  • 我不知道为什么会这样。但我设法通过手动下载文件(我用 wget 完成)并将其放入 ~/.pyenv/cache/ 来解决这个问题。然后再次运行安装命令。

标签: python macos pyenv


【解决方案1】:

我遇到了同样的错误。挖了pyenv源码,找到了根本原因。

/usr/local/bin/python-build 内部,它会检测到一个http 客户端来下载tar 文件。首选是aria2c,然后是curl,然后是wget

那么检查aria2ccurlwget是否可以成功运行。

detect_http_client() {
  local client
  for client in aria2c curl wget; do
    if type "$client" &>/dev/null; then
      echo "$client"
      return
    fi
  done
  echo "error: please install \`aria2c\`, \`curl\`, or \`wget\` and try again" >&2
  return 1
}

对于我的问题,我的aria2c 命令有问题。我之前升级了我的openssl库,然后所有相关命令在执行时都出错了。

> aria2c                                                                                                                                              55.5s
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /usr/local/opt/libssh2/lib/libssh2.1.dylib

重装aria2c及相关库后,问题解决。

重新安装aria2c的步骤:

> brew uninstall aria2
> brew install aria2

【讨论】:

  • 就我而言,brew upgrade aria2 #not aria2c 为我工作,谢谢!
  • @BigRich 是的,你是对的,brew 包名称是aria2。现在在答案中添加了步骤。
【解决方案2】:

错误可能有多种原因,但您可以使用

--verbose

标记以获得更精确的信息。

pyenv install <your version> --verbose

在我的情况下,错误是通过自制软件安装 curl,但路径指向本机安装:

python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
/var/folders/_z/nn_xcbvd3_15l_njz9j9c85c0000gn/T/python-build.20190717020159.52739 ~
Downloading Python-3.5.7.tar.xz...
-> https://www.python.org/ftp/python/3.5.7/Python-3.5.7.tar.xz
dyld: Library not loaded: /usr/local/opt/libssh2/lib/libssh2.1.dylib
  Referenced from: /usr/local/bin/curl
  Reason: image not found
/Users/johannes/.pyenv/plugins/python-build/bin/python-build: line 368: 53069 
Abort trap: 6           curl -q -o "${2:--}" -sSLf ${CURL_OPTS} "$1"
error: failed to download Python-3.5.7.tar.xz

BUILD FAILED (OS X 10.14.5 using python-build 1.2.13)

解决方法是添加

PATH="/usr/local/opt/curl/bin:$PATH"

到我的环境。

【讨论】:

    【解决方案3】:

    它解决了我重新安装aria2 后的问题:

    brew uninstall aria2' then 'brew install aria2
    

    【讨论】:

      【解决方案4】:

      对我来说似乎是网络错误 - 在确认文件仍然可用并且安装没有问题后切换到更快的网络

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-14
        • 1970-01-01
        • 2021-09-21
        • 1970-01-01
        • 2022-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多