之前把現有這臺阿里CentOS7.2系統的Python2.7.5升級成Python3.6后,yum工具就不能不覺使用了。當時查了下說明python版本的問題,但是用網上的方法還是沒解決,后面也就一直沒管了。最近要弄一個Nodejs小程序,需要用yum安裝一些開發工具,不得不修復這個問題。
1 yum工具報錯情況
直接執行 yum 命令就會提示 /usr/bin/yum 文件第34行有錯誤:
1
2
3
4
5
|
[root@typecodes ~] # yum File "/usr/bin/yum" , line 34 ^ SyntaxError: EOF while scanning triple - quoted string literal [root@typecodes ~] # |
但是vim查看這個文件根本沒有這一行:
2 解決方法
由于找不到報錯的位置,只能考慮重新安裝yum了。
2.1、下載yum安裝包
1
2
3
|
[root@typecodes ~] # wget -c http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz [root@typecodes ~] # tar -zxf yum-3.4.3.tar.gz [root@typecodes ~] # cd yum-3.4.3/ |
接著使用 python2 yummain.py install yum
命令(還是不能使用python3來執行)重新安裝yum工具:
2.2、執行 yum 命令
嘗試執行 yum 命令,在 /usr/bin/yum 文件的第30行報錯:
1
2
3
4
5
|
[root@typecodes yum - 3.4 . 3 ] # yum File "/usr/bin/yum" , line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax [root@typecodes yum - 3.4 . 3 ] # |
顯然上面的 except 是python2的寫法,當然不能使用默認的Python3來執行了。于是把這個文件第1行的 #!/usr/bin/python
替換成 #!/usr/bin/python2
。
2.2、繼續執行 yum 命令
嘗試執行 yum -y update
命令更新CentOS系統,結果在文件 /usr/libexec/urlgrabber-ext-down
第28行處還是報 SyntaxError: invalid syntax
的錯誤。
問題是一樣的,要么把 /usr/libexec/urlgrabber-ext-down
文件中所有的except寫法改成Python3,要么修改第1行的解釋器聲明。顯然第2種方法更新簡單有效。
3 解決完畢
到此,可以愉快地使用 yum -y update
命令更新CentOS系統,然后做開發了!
總結
以上所述是小編給大家介紹的修復CentOS7升級Python到3.6版本后yum不能正確使用的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:https://typecodes.com/linux/python3caseyumbug.html