You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 22.10下pyenv 2.3.17安装Python版本时出现下载失败错误

Ubuntu 22.10下pyenv 2.3.17安装Python版本时出现下载失败错误

我来帮你搞定这个问题!你遇到的curl: (23) Failure writing output to destination错误,大概率是下载过程中写入文件出了问题,结合你的Ubuntu 22.10环境,咱们可以试试下面几个办法:

  • 更新pyenv及相关组件
    你当前用的python-build版本是20180424,版本太老了,和新系统可能存在兼容性问题。先更新pyenv:

    cd ~/.pyenv
    git pull
    

    更新完成后再重新运行pyenv install 3.7.0,看看能不能正常下载。

  • 手动下载源码包到pyenv缓存目录
    如果自动下载一直失败,咱们可以手动把Python源码包放到pyenv的缓存里,让它跳过下载步骤直接安装:

    1. 先创建缓存目录(如果不存在的话):
      mkdir -p ~/.pyenv/cache
      
    2. 手动下载Python 3.7.0的源码包到这个目录,你可以用浏览器直接下载后拖进去,或者用curl命令指定输出路径:
      curl -L https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz -o ~/.pyenv/cache/Python-3.7.0.tar.xz
      
    3. 再次运行pyenv install 3.7.0,这时候pyenv会自动读取缓存里的文件,不用再下载了。
  • 检查磁盘空间与权限
    curl的23错误也可能是/tmp目录空间不足,或者没有写入权限。先看看/tmp的剩余空间:

    df -h /tmp
    

    如果空间不够,清理一下/tmp里的临时文件就行。另外注意不要用sudo运行pyenv,因为pyenv是用户级工具,sudo会改变环境变量,反而导致命令找不到,用普通用户身份操作就好。

  • 安装Python编译依赖
    老版本的Python在Ubuntu 22.10上编译需要一些系统依赖,缺失的话也可能间接导致安装失败,先把这些依赖装上:

    sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
    

    装完之后再尝试安装Python 3.7.0。

备注:内容来源于stack exchange,提问作者noskule

火山引擎 最新活动