服務器自帶的python版本為2.7,需要升級到python3,遇到了一些坑,記錄一下.
準備工作
安裝和編譯工作很順利,但是發現pip版本不能被正確安裝,出現下面的錯誤
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.4/multiprocessing/context.py", line 132, in Value
from .sharedctypes import Value
File "/usr/local/lib/python3.4/multiprocessing/sharedctypes.py", line 10, in <
module>
import ctypes
File "/usr/local/lib/python3.4/ctypes/__init__.py", line 7, in <module>
from _ctypes import Union, Structure, Array
ImportError: No module named '_ctypes'
查閱資料發現需要提前安裝好一個依賴,pip才可以被正確安裝
yum install libffi-devel
安裝
# 下載
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
#解壓源碼包
tar -zxvf Python-3.7.0.tgz
#創建安裝目錄
mkdir /usr/local/python3
cd Python-3.7.0/
#安裝到指定目錄
./configure --prefix=/usr/local/python3
# 編譯
make && make install
后續工作
設置軟鏈接使得全局使用python3
cd /usr/local/python3
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/bin/pip3 /usr/bin/pip
不知道pip安裝位置的,可以使用命令來查看安裝位置
which pip3
驗證版本
pip3 -V
python3 -V
可以使用下述命令來查看軟鏈接設置
ls -al /usr/bin | grep python
配置yum
升級 Python 之后,由于將默認的 python 指向了 python3,yum 不能正常使用,需要編輯 yum 的配置文件:
vi /usr/bin/yum
同時修改:
vi /usr/libexec/urlgrabber-ext-down
將 #!/usr/bin/python 改為 #!/usr/bin/python2.7,保存退出即可。
參考鏈接
http://www.lxweimin.com/p/447750ec1186
https://docs.python.org/zh-cn/3/installing/index.html
https://zhuanlan.zhihu.com/p/34024112