安装python时碰到的尴尬的事情(使用pyenv离线安装python)

概述

前几天迫不得已重装了系统,所以要重新安装一下python,我用的python版本管理工具是pyenv,大家都得知道一点的是大天朝的电信出口带宽等于断网,所以我用proxychains这个工具用来做代理执行pyenv的安装命令,没想到报错了,而且这个报错只有在使用proxychains来执行pyenv的时候才会发生

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
➜  ~  pyenv install 2.7.14
Downloading Python-2.7.14.tar.xz...
-> https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz
Installing Python-2.7.14...

BUILD FAILED (Ubuntu 16.04 using python-build 20160602)

Inspect or clean up the working tree at /tmp/python-build.20170918160806.22886
Results logged to /tmp/python-build.20170918160806.22886.log

Last 10 log lines:
checking for getcwd... yes
checking for strdup... yes
checking for getpgrp... yes
checking for setpgrp... (cached) yes
checking for gettimeofday... yes
checking for major... yes
checking for getaddrinfo... yes
checking getaddrinfo bug... yes
Fatal: You must get working getaddrinfo() function.
or you can specify "--disable-ipv6".

what the fuck ?
在线安装不可以那我离线安装还不行?

解决方法

使用pyenv安装python的时候大家有没有看到这么一行
-> https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz
没错,这就是python的下载地址,之后wget下来
proxychains wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz
当然是挂代理wget啦
接着把安装包放进pyenv的cache文件夹中,如果没有这个cache文件夹,那么新建一个
mv Python-2.7.14.tar.xz .pyenv/cache
之后就是直接下载了

1
2
➜  ~ pyenv install 2.7.14
Installing Python-2.7.14...

附录

上文提到两个东西pyenv和proxychains如果不会使用的话可以看我的博客

ubuntu安装python时候经常会碰到的几个依赖

  • zlib1g-dev
  • libreadline-dev
  • libssl-dev
  • libbz2-dev
  • libsqlite3-dev

欢迎关注Bboysoul的博客www.bboysoul.com
Have Fun

欢迎关注我的其它发布渠道