相关疑难解决方法(0)

由于与GI相关的python脚本中的错误,Gnome终端无法启动

当我运行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)

python linux terminal ubuntu gnome

8
推荐指数
4
解决办法
8056
查看次数

标签 统计

gnome ×1

linux ×1

python ×1

terminal ×1

ubuntu ×1