背景: 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