【发布时间】:2015-09-17 21:14:29
【问题描述】:
当我运行 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
这对我来说看起来很奇怪,因为该脚本位于 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
这建议一个快速的解决方法:在这两个打印行中加上括号。
File "/usr/bin/gnome-terminal", line 9, in <module>
from gi.repository import GLib, Gio
ImportError: No module named 'gi.repository'
这很奇怪。
这必须在 /usr/bin/python3 上运行,因为这是 /usr/bin/gnome-terminal 上的 shebang 上的内容。
/usr/bin上的python3其实是python3.4的链接,是一个二进制文件。
然后我运行 pip3 install gi 并得到以下输出,它告诉我实际安装了 gi。
Requirement already satisfied (use --upgrade to upgrade): gi in /usr/local/lib/python3.4/dist-packages
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/python3/dist-packages (from gi)
现在我没有想法了。
这是在我尝试从 https://github.com/Pumubuntu/Pumubuntu 安装 Pumubuntu 之后开始的。
在主脚本文件中它说:
import sys
if len(sys.argv) == 1:
print('Importing Python modules. If one is missing get it with:\n'
' "sudo apt-get install python-..." or\n'
' "sudo apt-get install girX.Y-..." for gi.repository imports.')
所以我想我必须输入这些命令。这一定破坏了我的 gir 安装 (gir)。
谁能帮帮我?
【问题讨论】:
-
你运行的是哪个版本的 Ubuntu?
-
15.04,我试过 sudo pip3 install pygobject 但它失败了“raise SystemExit, 'ERROR: Nothing to do, gio could not be found and is essential.'” 尝试 sudo apt-get install --在安装脚本期间,重新安装 glib 让我再次回到“ImportError: No module named 'gi.repository'”。
-
我真的不确定Ubuntu在这里搞砸了什么;这个包装脚本是由他们提供的。主流 gnome-terminal 是一个二进制文件,它可能以
/usr/bin/gnome-terminal.real或类似的形式提供给您,并且根本不使用 python。你可以尝试直接启动这个。
标签: python linux ubuntu terminal gnome