前言:
如今咱们对“pythonftp主动模式”大致比较看重,同学们都想要学习一些“pythonftp主动模式”的相关知识。那么小编也在网络上搜集了一些对于“pythonftp主动模式””的相关内容,希望咱们能喜欢,咱们一起来了解一下吧!Linux升级默认的python版本,解决默认python升级后yum无法使用的问题
实际可能需要更高版本的python,以CentOS7为例介绍下升级过程,通过源码安装。
1、查看Linux默认python版本
[root@TimeSync ~]# python -V
Python 2.7.5
[root@TimeSync ~]#
2.下载Python源码包
下载python源码包方法1:
在官网下载源码包,这里以python3.9.10
下载地址:
下载python源码包方法2:
使用wget命令下载源码
wget
3.使用yum安装编译环境
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel gcc-c++ gcc xz
4.解压、编译、安装
tar -xvf Python-3.9.10.tar.xz -C /usr/local/
./configure
make && make install
5.查看版本
python3 -V 查看版本
python -V 查看版本
注意:虽然此时安装已经完成,但只是安装了python3的环境,默认的python环境还是python2
6.修改默认python环境
使用whereis查看python命令来源,可以看到是来自/usr/bin/python这个文件
[root@TimeSync ~]# whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/bin/python2.7-config /usr/bin/python3.6-config /usr/bin/python3.6m-config /usr/bin/python3.6 /usr/bin/python3.6m /usr/bin/python.bak /usr/bin/python3.6m-x86_64-config /usr/lib/python2.7 /usr/lib/python3.6 /usr/lib64/python2.7 /usr/lib64/python3.6 /etc/python /usr/local/bin/python3.9 /usr/local/bin/python3.9-config /usr/local/lib/python3.9 /usr/include/python2.7 /usr/include/python3.6m /usr/share/man/man1/python.1.gz
[root@TimeSync ~]#
使用 ll 命令查看这个文件的信息,通过观察发现,/usr/bin/python文件是一个软连接,它的来源是/usr/bin/python2.7这个文件
[root@TimeSync ~]# ll /usr/bin/python
lrwxrwxrwx 1 root root 16 3月 13 11:09 /usr/bin/python -> /usr/bin/python2
[root@TimeSync ~]#
[root@TimeSync ~]# ll /usr/bin/python2
lrwxrwxrwx 1 root root 9 12月 6 09:27 /usr/bin/python2 -> python2.7
[root@TimeSync ~]#
[root@TimeSync ~]# ll /usr/bin/python2.7
-rwxr-xr-x 1 root root 7144 6月 28 2022 /usr/bin/python2.7
[root@TimeSync ~]#
使用相同的方式找到python3命令的文件
[root@TimeSync ~]# whereis python3
python3: /usr/bin/python3.6-config /usr/bin/python3.6m-config /usr/bin/python3 /usr/bin/python3.6 /usr/bin/python3.6m /usr/bin/python3.6m-x86_64-config /usr/lib/python3.6 /usr/lib64/python3.6 /usr/local/bin/python3.9 /usr/local/bin/python3.9-config /usr/local/bin/python3 /usr/local/lib/python3.9 /usr/include/python3.6m /usr/share/man/man1/python3.1.gz
[root@TimeSync ~]#
[root@TimeSync ~]# ll /usr/local/bin/python3
lrwxrwxrwx 1 root root 9 3月 13 11:27 /usr/local/bin/python3 -> python3.9
[root@TimeSync ~]# ll /usr/local/bin/python3.9
-rwxr-xr-x 1 root root 17883864 3月 13 11:26 /usr/local/bin/python3.9
[root@TimeSync ~]#
7.修改软连接
删除原来的/usr/bin/python文件,切记不要删错,或者备份下
rm -f /usr/bin/python或者mv /usr/bin/python /usr/bin/python.bak
8.使用ln命令创建新的连接文件,使/usr/bin/python指到我们的python3文件
这时再查看默认python环境已经是python3.9,至此已经完成了默认python环境的修改
[root@TimeSync ~]# ln -s /usr/local/bin/python3.9 /usr/bin/python
[root@TimeSync ~]# ll /usr/bin/python
lrwxrwxrwx 1 root root 24 3月 13 13:31 /usr/bin/python -> /usr/local/bin/python3.9
[root@TimeSync ~]# python -V
Python 3.9.10
[root@TimeSync ~]#
9.解决升级后yum无法使用的问题
将默认python环境升级后,如果使用yum命令就会发现,yum无法正常使用了,报错如下:
[root@TimeSync ~]# yum
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
[root@TimeSync ~]#
这是因为使用的yum是python2的语法写的,我们修改将默认的python环境修改为python3,就会导致使用python3的解释器去执行python2的代码,python3和python2在语法上还是有一些不同的,所以无法执行,就会导致我们的yum报错。
这也是为什么Linux会默认安装了python2,因为有很多的系统命令是使用python2开发的。
通过报错可以知道,这是/usr/bin/yum这个文件有问题,使用vim或者vi编辑器打开这个文件。
[root@TimeSync ~]# vim /usr/bin/yum
#!/usr/bin/python2
import sys
try:
import yum
从第一行可以看到解释器为/usr/bin/python,但是已经将这个文件替换成了python3,所以只需要修改这个文件的解释器为python2就好,保存退出
[root@TimeSync ~]# ll /usr/bin/python*
lrwxrwxrwx 1 root root 24 3月 13 13:31 /usr/bin/python -> /usr/local/bin/python3.9
lrwxrwxrwx 1 root root 9 12月 6 09:27 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7144 6月 28 2022 /usr/bin/python2.7
-rwxr-xr-x 1 root root 1835 6月 28 2022 /usr/bin/python2.7-config
lrwxrwxrwx 1 root root 16 3月 8 17:23 /usr/bin/python2-config -> python2.7-config
lrwxrwxrwx 1 root root 16 3月 13 11:09 /usr/bin/python.bak -> /usr/bin/python2
lrwxrwxrwx 1 root root 14 3月 8 17:23 /usr/bin/python-config -> python2-config
[root@TimeSync ~]#
使用yum命令测试,恢复正常。
标签: #pythonftp主动模式