在Linux上编译安装Python3

实验环境

  • CentOS/Ubuntu系统;
  • 系统架构:64位
  • Python版本:3.6.4

相关网址

安装指导

Ubuntu系统

  • 安装编译套件:
1
$ apt install -y build-essential libtool
  • 安装readline库:
1
$ apt install -y libreadline-dev
  • zlib库(PIP包管理器的依赖):
1
$ apt install -y zlib1g zlib1g-dev
  • openssl库:
1
$ apt install -y openssl libssl-dev

CentOS系统

  • 安装编译套件:
1
$ yum install -y gcc gcc-c++ make automake autoconf bzip2
  • 安装readline库:
1
$ yum install -y readline readline-devel ncurses-devel
  • zlib库(PIP包管理器依赖):
1
$ yum install -y zlib zlib-devel
  • openssl库:
1
$ yum install -y openssl openssl-devel

CentOS/Ubuntu系统

  • 查看GCC的版本信息:
1
$ gcc --version
  • 解压源码包:
1
$ tar -zxf Python-3.6.4.tgz
  • 编辑配置文件:
1
2
$ cd Python-3.6.4/
$ vim Modules/Setup.dist
  • 取消下面1行的注释(大约在文件的366行):
1
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
  • 预编译:
    <prefix>:用于指定安装目录;
    enable-optimizations:启用优化选项(LTOPGO等),不过编译时间加长(老长了);
1
2
3
./configure \
--enable-optimizations \
--prefix=/usr/local/python3.6.4
  • 编译并安装(多进程编译):
1
$ make -j 4 && make install
  • 获取Python命令的位置:
1
$ which python
  • 查看所有Python命令的软链接:
1
$ ll -a /usr/bin/python*
  • 备份原有的Python命令的软链接:
1
$ mv -f /usr/bin/python /usr/bin/python.bak
  • 创建新的Python命令的软链接:
1
2
$ ln -sf /usr/local/python3.6.4/bin/python3.6 /usr/bin/python
$ ln -sf /usr/local/python3.6.4/bin/python3.6 /usr/bin/python3
  • 获取PIP命令的位置(可省略):
1
$ which pip
  • 查看所有PIP命令的软链接(可省略):
1
$ ll -a /usr/bin/pip*
  • 备份原有的PIP命令的软链接(可省略):
1
$ mv -f /usr/bin/pip /usr/bin/pip.bak
  • 创建新的PIP命令的软链接:
1
2
$ ln -sf /usr/local/python3.6.4/bin/pip3 /usr/bin/pip
$ ln -sf /usr/local/python3.6.4/bin/pip3 /usr/bin/pip3

CentOS系统

  • 由于CentOS系统的包资源管理器默认为yum,由Python语言实现的,故依赖于系统的Python2,我们修改了系统内置的Python软链接,会导致yum无法使用;

  • 获取yum命令的位置:

1
$ which yum
  • 查看所有yum命令的软链接:
1
$ ll -a /usr/bin/yum*
  • 编辑yum命令,使其继续使用旧的Python命令;
1
$ vim /usr/bin/yum
1
#!/usr/bin/python2

PIP管理器

安装PIP

  • 若编译时,未安装PIP,可单独安装PIP
  • 下载get-pip.py文件:
1
$ wget https://bootstrap.pypa.io/get-pip.py
  • 安装PIP包管理器:
1
$ python get-pip.py
  • 升级PIP包管理器:
1
$ pip install -U pip

更改PIP的源

  • 创建并修改配置文件:
1
2
$ mkdir ~/.pip/
$ vim ~/.pip/pip.conf
  • 清华大学的PIP源:
1
2
3
4
5
6
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
disable-pip-version-check = true
timeout = 6000
  • 豆瓣的PIP源:
1
2
3
4
5
6
[global]
index-url = https://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com
disable-pip-version-check = true
timeout = 6000

有你就有世界,感谢有你,昕!
0%