8 python linux terminal ubuntu 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): 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)
Run Code Online (Sandbox Code Playgroud)
而现在我的想法不足.
这是在我尝试从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.')
Run Code Online (Sandbox Code Playgroud)
所以我想我必须输入这些命令.这肯定打破了我的gir装置(gir).
有谁能够帮我?
ray*_*ica 12
我发现修复此错误的另一种方法是修改gnome-terminal位于其中的脚本/usr/bin/并将环境(脚本的第一行)#!/usr/bin/python3更改 #!/usr/bin/python为从Python 3切换到Python 2,因为Github命令行适用于Python 2,如以前的答案.
因此,xterm通过按下超级键(左下方Alt键旁边的键)或按Alt+ 键F2并键入xterm以搜索备用终端并单击它以运行来打开.接下来,按照上面键入sudo gedit /usr/bin/gnome-terminal,按下ENTER并编辑第一行.这不是最好的解决方案,因为您不必编辑脚本,但它对我有用,并且不需要卸载任何东西.
最新版本需要Python 3,所以Jon M.在他的评论中指出,更改文件的第一行以使用Python 3.5:
#!/usr/bin/python3.5
Run Code Online (Sandbox Code Playgroud)
小智 7
在Python 3.5中,我这样做:
sudo vim /usr/bin/gnome-terminal#!/usr/bin/python为#!/usr/bin/python3.5这解决了我的问题!
小智 6
这是一个老问题,但这是第一次谷歌热播,应该回答.
该错误是由python3上安装gi包引起的.
这是一个包GIST Github的命令行的python2.它不涉及到GNOME对象或GNOME反省.请访问:
python gi on package index
它导致与gi.repository的命名冲突,而不是在你的python dist-packages中寻找gir,你的系统__init__是gi包.因此错误显示
ImportError: No module named 'gi.repository'
卸载该程序包将解决该错误.此外,如果你正在寻找一个大人物,尝试defunkt要点
将python3.5更新到python3.6后我也遇到了这个问题
这不是更好的方法,但工作正常。
发生此问题是由于 _gi_cairo 。我通过以下代码解决了它
cd /usr/lib/python3/dist-packages/gi/
sudo cp _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-36m-x86_64-linux-gnu.so
sudo cp _gi_cairo.cpython-35m-x86_64-linux-gnu.so _gi_cairo.cpython-36m-x86_64-linux-gnu.so
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8056 次 |
| 最近记录: |