Linux CentOS升級Python 3.7版本方法

背景: linux 的centos7 默認安裝了 python2.7.5 , 需要升級到最新版本

最近給公司的一臺閑置的電腦重新做了系統(CentOS 7.4),官網方鏈接已經沒有了,網上好難找到了,最后在我移動硬盤中找到了這個珍藏版本,系統安裝我就不多說了,下面講講如何處理升級之后無法啟動面板的過程,因為Python2 和Python3 不兼容,而塔寶是使用Python2寫的,導致升級Python3 之后面板無法啟動了

安裝Python 3.7

# 創建安裝包目錄,把3.7.0換為你要版本即可
mkdir -p /root/Downloads/python_install && cd /root/Downloads/python_install
# 下載
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/python3/bin/pip3 /usr/local/bin/pip3

出現問題:
1、CentOS7 升級Python3 之后塔寶面板打不開解決辦法
這個時候好多人會用軟鏈更更換Python版本,如果更換之后就其實寶塔面板還是正常運行的,但是當你重啟服務器之后就gg了,如果你嘗試重啟面板會出現一下提示

[root@localhost ~]# service bt restart
Stopping Bt-Tasks... done
Stopping Bt-Panel... done
Starting Bt-Panel...   File "main.py", line 32
    except Exception,ex:
                    ^
SyntaxError: invalid syntax

failed
------------------------------------------------------
RuntimeError: Bad magic number in .pyc file
------------------------------------------------------

所以我們需要移除軟鏈還原原來的Python版本

rm -rf /usr/bin/python
ln -s /usr/bin/python2.7 /usr/bin/python

這時候重啟一下面板會看到

[root@localhost ~]# service bt restart
Stopping Bt-Tasks... done
Stopping Bt-Panel... done
Starting Bt-Panel... done
Starting Bt-Tasks... done

大家會說那怎么使用python3開發,命令行執行py文件之后使用python3命令即可
python3 xxxx.py

2、出現使用yum命令報錯File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
問題如下:

這里寫圖片描述

問題出現原因:
yum包管理是使用python2.x寫的,將python2.x升級到python3.1.3以后,由于python版本語法兼容性導致問題出現
解決辦法:
修改yum配置文件,將python版本指向以前的舊版本

# vi /usr/bin/yum
#!/usr/bin/python2.7

修改urlgrabber-ext-down文件,更改python版本

# vi /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python2.7

3、ImportError: No module named '_sqlite3' in python3.7
先安裝

yum install readline-devel
yum install tk-devel
yum install tcl-devel  
yum install openssl-devel   
yum install sqlite-devel 

然后重啟編譯python3

tar Jxvf  Python-3.7.0.tar.xz
cd Python-3.7.0
./configure --prefix=/usr/local/python3
make && make install

參考:
https://stackoverflow.com/questions/20126475/importerror-no-module-named-sqlite3-in-python3-3
https://my.oschina.net/bileel/blog/2222172

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容