当我运行gnome-terminal时,我收到以下错误:
Traceback (most recent call last):
File "/usr/bin/gnome-terminal", line 9, in <module>
from gi.repository import GLib, Gio
File "/usr/local/lib/python3.4/dist-packages/gi/__init__.py", line 39
print url
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪,因为脚本位于python 3.4安装中,但是调用print就好像它是一个python2脚本(这就是出错的原因).
我试图用pip3重新安装包gi,但它继续安装这个看起来像python2脚本的版本.
我的gnome-terminal指向/ usr/bin/gnome-terminal,这是一个以#!/ usr/bin/python3开头的python脚本.
init .py中具有该特定错误的行是:
if __name__ == '__main__':
try:
url = save_file()
print url
except GistError as e:
print e.value
Run Code Online (Sandbox Code Playgroud)
这表明可以快速修复:将括号放在这两条打印行中.
File "/usr/bin/gnome-terminal", line 9, in <module>
from gi.repository import GLib, Gio
ImportError: No module named 'gi.repository'
Run Code Online (Sandbox Code Playgroud)
这很奇怪.
这必须在/ usr/bin/python3上运行,因为这就是/ usr/bin/gnome-terminal上的shebang.
/ usr/bin上的python3实际上是python3.4的链接,它是一个二进制文件.
然后我运行pip3 install gi,我得到以下输出,它告诉我实际安装了gi.
Requirement already satisfied (use --upgrade to upgrade): …Run Code Online (Sandbox Code Playgroud)