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