1、查看當前Linux的python版本
# python -V
我的Linux當前版本是2.×.×,需要安裝3.×.×
以python3.7.5為例
2、進入 /opt 目錄下
# cd /opt
3、創建soft文件夾
# mkdir soft
4、進入soft文件夾下載python3.7.5的包
# cd soft
# wgit https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
5、解壓python包
# tar -zxvf Python-3.7.5.tgz
6、進入解壓后的Python-3.7.5 文件夾,進行安裝python
# cd Python-3.7.5
# ./ configure
如果執行報錯:configure: error: no acceptable C compiler found in $PATH,說明沒有安裝合適的編譯器。這時,需要安裝/升級 gcc 及其它依賴包。
安裝依賴包命令:yum -y install gcc
安裝完成再次執行 ./ configure
進行編譯
# make
如果執行報錯:make: *** No targets specified and no makefile found. Stop.,有以下幾種方式可以嘗試解決
1)update最新版本系統軟件
# yum update
這個必須要執行后才可以安裝我們的系統軟件或者一鍵包。
2)編譯缺失關聯軟件
# yum install gcc build-essential
編譯執行完畢之后,我們在執行./configure && make這類的執行命令就可以解決問題。
3)Linux下各種依賴都已經安裝,是因為沒有找到makefile。
如果是自己寫的,確定在當前目錄下;如果是源碼安裝,先運行./configure,生成makefile,再執行make,即可正常運行。
4)如果沒有安裝其他依賴先安裝依賴
yum install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel (安裝依賴zlib、openssl和pcre)
注:
update最新版本系統軟件(apt-get update),這個必須要執行后才可以安裝我們的系統軟件或者一鍵包。
編譯缺失關聯軟件(apt-get install gcc build-essential)
編譯執行完畢之后,我們再執行./configure,make這類的執行命令就可以解決問題。
進行安裝
# make install
安裝完成后,執行python3 -V命令檢查是否安裝成功
7、將Python3.7.5設置為默認版本
1)查看當前python指向的連接
# ls -al /usr/bin | grep python
2)可以看到如果執行python命令,指向的是python2.7版本,需要將默認版本設置為3.7.5,我們就要將原來 python 的軟鏈接重命名:
# mv /usr/bin/python /usr/bin/python.bak
3)再將python命令指向python3:
# ln -s /usr/local/bin/python3 /usr/bin/python
4)再查看python的版本
# python -V
8、升級完Python3.7.5,需把修改yum的配置文件:
將 /usr/libexec/urlgrabber-ext-down 和 /usr/bin/yum 中的#!/usr/bin/python 改為 #!/usr/bin/python2.7
# vim /usr/libexec/urlgrabber-ext-down(:wq保存並退出)
# vim /usr/bin/yum(:wq保存並退出)
9、由於目前系統中默認的Python版本為3.7.5,所以直接執行pip 安裝命令即可安裝項目中需要的擴展庫
1)查看pip版本,pip -V,如果版本低於18,執行pip install --upgrade pip 升級pip版本
如果遇到ssl問題,執行rpm -aq|grep openssl查看是否有openssl-devel文件,如沒有yum install openssl-devel -y安裝 ,安裝成功后,修改vi /opt/soft/Python-3.6.5/Modules/Setup,增加
#_codecs_cn cjkcodecs/_codecs_cn.c
#_codecs_hk cjkcodecs/_codecs_hk.c
#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
#_codecs_jp cjkcodecs/_codecs_jp.c
#_codecs_kr cjkcodecs/_codecs_kr.c
#_codecs_tw cjkcodecs/_codecs_tw.c
# Example -- included for reference only:
# xx xxmodule.c
# Another example -- the 'xxsubtype' module shows C-level subtyping in action
xxsubtype xxsubtype.c
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
保存並退出后,重新安裝Python:
cd /opt/soft/Python-3.6.5
make
make install
這時候在執行pip安裝就可以了。