参考了知乎用户-爬上墙头大佬的文章。
Carlos Blog大佬的内容会更全面一些,但是链接似乎会被墙掉,所以把一些问题写在了这里。
安装wget
# yum install wget
下载新版本
这里用的版本是 Python3.7.0
# wget https://www.python.org/ftp/python/3.5.2/Python-3.7.0.tgz
解压缩
# tar -zxvf Python-3.7.0.tgz
创建一个空的文件夹,用来安装
说实话,这一步说我是没有走的,但是看好几篇文章都有这一步,所以我写上了
# mkdir /usr/local/python3
# yum install openssl-devel -y
编译并安装
# ./configure --prefix=/usr/local/python3
# make && make install
遇到错误
zipimport.ZipImportError: can't decompress data; zlib not available
解决方案:
是因为缺少zlib 的相关工具包导致的
# yum -y install zlib*
又遇到一个问题
Traceback (most recent call last):
File "/home/carlos/Python-3.7.0/Lib/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/home/carlos/Python-3.7.0/Lib/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/carlos/Python-3.7.0/Lib/ensurepip/__main__.py", line 5, in <module>
sys.exit(ensurepip._main())
File "/home/carlos/Python-3.7.0/Lib/ensurepip/__init__.py", line 204, in _main
default_pip=args.default_pip,
File "/home/carlos/Python-3.7.0/Lib/ensurepip/__init__.py", line 117, in _bootstrap
return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
File "/home/carlos/Python-3.7.0/Lib/ensurepip/__init__.py", line 27, in _run_pip
import pip._internal
File "/tmp/tmpgcm2i4lh/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/__init__.py", line 42, in <module>
File "/tmp/tmpgcm2i4lh/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/cmdoptions.py", line 16, in <module>
File "/tmp/tmpgcm2i4lh/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/index.py", line 25, in <module>
File "/tmp/tmpgcm2i4lh/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/download.py", line 39, in <module>
File "/tmp/tmpgcm2i4lh/pip-10.0.1-py2.py3-none-any.whl/pip/_internal/utils/glibc.py", line 3, in <module>
File "/home/carlos/Python-3.7.0/Lib/ctypes/__init__.py", line 7, in <module>
from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
解决方案:
3.7版本需要一个新的包libffi-devel,安装此包之后再次进行编译安装即可
# yum install libffi-devel -y
创建软链接
# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
配置 yum
升级 Python 之后,由于将默认的 python 指向了 python3,yum 不能正常使用,需要编辑 yum 的配置文件:
# vi /usr/bin/yum
同时修改:
# vi /usr/libexec/urlgrabber-ext-down
将#!/usr/bin/python
改为#!/usr/bin/python2.7
,保存退出即可。