在对 Ubuntu 中的默认 Python 版本进行了一些不太明智的编辑(从 2.7 到 3.2)后,我最终破坏了整个系统。在我的计算机崩溃并且所有东西都停止工作后,我尝试恢复我的更改(通过链接/usr/bin/python2.7
并将/usr/bin/python
默认版本改/usr/share/python/debian_defaults
回 2.7),但有些东西仍然有问题。
例如,当我import gi
在 Python 解释器中输入时,我收到以下消息:
>>> import gi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named gi
>>>
某些程序也会出现此错误(例如:gnome tweak tool)。我尝试从软件中心和源代码重新安装 Python,但同样的错误仍然存在。
python --version
现在返回:
Python 2.7.2
并且一些依赖 Python 2.7 的软件包现在可以运行(例如软件中心),但有些东西仍然有问题。我能做些什么来完全重新安装 Python 2.7 作为默认版本?
答案1
我发现了三种方法可以做到这一点:
简单的方法:
sudo apt install python3-gi
这维克斯对于虚拟环境用户来说,方法如下:
pip install vext pip install vext.gi
纯 Python 开发方式:
安装一堆开发人员的东西:
sudo apt install pkg-config libcairo2-dev gcc python3-dev libgirepository1.0-dev
安装python包:
pip install PyGObject
答案2
如果你安装了 anaconda 并且它已成为默认的 python 环境,则可以通过以下方式安装 gi 模块:
conda install -c conda-forge pygobject
另请参阅: https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/1611523
答案3
答案4
就我而言:
>>> import gi
>>> gi.__file__
'/usr/lib/python2.7/dist-packages/gi/__init__.pyc'
因此,您需要检查是否有该文件可用。如果没有,则检查该 /usr/lib/python2.7/dist-packages/gi/__init__.py
点/usr/share/pyshared/gi/__init__.py
。您应该有该文件,因为您有python-gobject 3.0.0-0ubuntu4
(是的,我有完全相同的版本)。
如果gi
包在那里,那么你应该看看你的sys.path
输出。如果/usr/lib/python2.7/dist-packages
没有,那么添加它并重试。
一旦导入成功,您就可以设置PYTHONPATH
或进一步调查路径设置不正确的原因。
悬而未决的问题可能是由于site.py
某种原因您的文件无效,或者更可能是您没有获得正确信息site.py
(它应该在 下/usr/lib/python2.7/
)。在这种情况下,请查看这里检查 python 用来查找该文件的所有目录并检查您的环境是否正确。