Python2与3版本兼容问题:wicd-curses运行报错求助
解决wicd-curses因Python版本兼容导致的SyntaxError问题
我之前在Ubuntu 16.04上也碰到过一模一样的问题!本质就是你装的wicd-curses是基于Python 2.x编写的,但系统默认用Python 3.5来执行它,而Python 2和3的print语法不兼容——Python 2里print '字符串'是合法写法,但Python 3要求必须加括号写成print('字符串'),这就是你看到那个SyntaxError的原因。
下面给你几个靠谱的解决办法:
方法1:临时指定Python 2运行脚本
直接在终端里用Python 2的解释器来执行wicd-curses的脚本,命令如下:
python2 /usr/share/wicd/curses/wicd-curses.py
如果是用非curses的wicd-gtk版本,对应命令是:
python2 /usr/bin/wicd-gtk
方法2:修改脚本的shebang行(永久解决)
这个方法能让你以后直接输入wicd-curses就能正常运行,不用每次都指定Python版本:
- 用sudo权限打开wicd-curses的脚本文件:
sudo nano /usr/share/wicd/curses/wicd-curses.py - 找到文件的第一行(shebang行),它看起来应该是:
#!/usr/bin/env python - 把它改成:
#!/usr/bin/env python2 - 按
Ctrl+O保存,Ctrl+X退出编辑器。
之后再直接运行wicd-curses就会自动用Python 2来执行了。
额外注意:确保Python 2已安装
虽然Ubuntu 16.04默认自带Python 2,但如果你的系统里意外没有的话,先执行下面的命令安装:
sudo apt-get update && sudo apt-get install python2.7
内容的提问来源于stack exchange,提问作者weilbith
相关产品推荐
相关产品推荐

