python升级流程
1、查看旧版本
python -V
2、下载新版python
cd /home/centos/Downloads # 进入存放目录
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz # 获取新版的 python
3、解压安装
> tar xvf Python-3.6.1.tar.xz # 解压文件
> cd ./Python-3.6.1 # 进入解压后的文件目录
> mkdir /usr/local/python3 # 创建编译安装目录
编译安装之前需要注意:
- 是否安装了openssl和openssl-devel,命令:rpm -aq | grep -i openssl
- 在编译安装之前,一定要先修改一下Modules/setup.py这个文件,具体修改内容如下:
sqlite_inc_paths = [ '/usr/include', '/usr/local/sqlite3/include', #增加该行 '/usr/include/sqlite', '/usr/include/sqlite3', '/usr/local/include', '/usr/local/include/sqlite', '/usr/local/include/sqlite3', ]
- 用yum安装sqlite-devel
> ./configure --prefix=/usr/local/python3 # 配置编译安装目录
> make && make install # 编译安装
4、配置
> mv /usr/bin/python /usr/bin/python_old # 备份旧的python
> ln -s /usr/local/python3/bin/python3 /usr/bin/python # 把新的 python3 链接到 python
5、问题解决
1、缺少zlib
报错:
zipimport.ZipImportError: can't decompress data; zlib not available
解决:
1.下载源码: http://www.zlib.net/(文件已保存在云笔记同级目录下了)
2.解压安装:# cd /home/centos/Downloads/ # tar zxvf zlib-1.2.11.tar.gz # cd zlib-1.2.11 # ./configure # make && make install
3.重新安装 python3
2、yum不可用
报错:
# yum search # 安装完后导致 yum 不可用 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax
解决:
# vi /usr/bin/yum # !/usr/bin/python 改成: #!/usr/bin/python_old # yum search
3、修改环境变量
我们将python3安装在了自定义的位置,这样会导致之后通过pip安装的插件不能直接使用命令,所以需要将python目录下的bin目录加入到环境变量中,修改环境变量的方法,修改/etc下的profile文件,记得修改完后要source一下该文件使之马上生效
# Path manipulation if [ "$EUID" = "0" ]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin pathmunge /usr/local/python3/bin #添加行 else pathmunge /usr/local/sbin after pathmunge /usr/sbin after pathmunge /sbin after pathmunge /usr/local/python3/bin after #添加行 fi