Preface
本文是在centos7.1安装python3.x的记录。踩了不少坑,记录下。心酸,docker化势在必行!!!!!!
安装python3.x
先安装安装几个必须的包,以方便后续的操作 1
2
3# wget 用于下载源码包
# gcc 和 make 用于编译
yum -y install wget gcc make zlib-devel readline-devel bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel
上Python的官网 下载源码包 1
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
解包,解压缩 1
2xz -d Python-3.6.1.tar.xz
tar -xvf Python-3.6.1.tar
编译 1
2cd Python-3.6.1
./configure --prefix=/usr/local/python3.6 --enable-optimizations
先解释下上面的参数,--prefix
是预期安装目录,--enable-optimizations
是优化选项(LTO,PGO 等)加上这个 flag 编译后,性能有 10% 左右的优化,但是这会明显的增加编译时间。不过关于 LTO 和 PGO 其实不在今天文章的讨论范围内,感兴趣的可以看看 GCC 中 LTO 的具体实现(GNU Compiler Collection (GCC) Internals: LTO Overview)。
接下来 1
make && make install
编译安装完成后,执行 1
2➜ /usr/local/python3.6/bin/python3 --version
Python 3.6.1
Python 3 也就安装成功了。
为了避免每次都输入一大串路径,加个链接 1
➜ ln -s /usr/local/python3.6/bin/python3 /usr/bin/python3
以上的命令整理为如下的shell
1 |
|
安装pip3.x
安装pip2.x
1 | # 首先安装 epel 扩展源 |
源码安装pip3.x
1 | # 下载源代码 |
创建链接
1 | $ sudo ln -s /usr/local/python3.6/bin/pip /usr/bin/pip3 |
升级 pip
1 | $ pip install --upgrade pip |
以上的命令整理为如下的shell1
2
3
4
5
6
7
8
9
10
11#!/bin/bash
# author: Sail
yum -y install epel-release python-pip
yum clean all
wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zvxf 9.0.1.tar.gz
cd pip-9.0.1
python3 setup.py install
ln -s /usr/local/python3.6/bin/pip /usr/bin/pip3
参考
在 CentOS 7 上安装并配置 Python 3.6 环境
CentOS 7 安装Python3、pip3
python3中pip3安装出错,找不到SSL
no acceptable C compiler found in $PATH