我最近更新了 Ubuntu 的最新版本,13.04 和 Python 2.7.4。从那时起,我在导入模块时遇到了问题gobject
,不知道该怎么做才能修复它。我想使用 dreampie,但它目前在启动时失败,并出现下面的 ImportError。以下是更多详细信息:
kiri:/home/kiri% uname -a
Linux megfigyelokocsi-2 3.8.0-17-generic #27-Ubuntu SMP Sun Apr 7 19:39:35 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
kiri:/home/kiri% sudo apt-get install python-gtk2 python-gobject python-gobject-2
Reading package lists... Done
Building dependency tree
Reading state information... Done
python-gobject-2 is already the newest version.
python-gobject is already the newest version.
python-gtk2 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
kiri:/home/kiri% python
Python 2.7.4 (default, Apr 9 2013, 19:58:39)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gobject
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named gobject
我之前也尝试过从源代码安装 dreampie:
git clone git://github.com/noamraph/dreampie.git dreampie
cd dreampie
sudo python setup.py install
安装成功了,但是没用,怎么让python识别gobject模块啊?
编辑:该模块确实存在于以下路径,但导入仍然不起作用:
/usr/lib/python2.7/dist-packages/gobject/
编辑2:我已经尝试修复可能已损坏的 Python 安装(但没有成功):
sudo zsh
apt-get remove --purge python2.7-minimal
apt-get remove --purge python2.7
apt-get autoremove
apt-get install python2.7-minimal
apt-get install python2.7
还尝试升级我的发行版,但它说一切都是最新的:
sudo zsh
apt-get clean && apt-get update
apt-get dist-upgrade
apt-get upgrade
编辑3:系统路径:
kiri:/home/kiri% python -c "import sys; print sys.path"
['', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7',
'/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk',
'/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']
答案1
检查 sys.path 后,我意识到解释器是从错误的位置(/usr/local/bin
而不是/usr/bin/
)加载的,因此我执行以下操作:
sudo rm -rf /usr/local/bin/python*
现在它工作正常了!之前我尝试从源码包构建和安装 python(成功了),但它似乎将其二进制文件放在了 Ubuntu 不友好的位置。问题根源在于变量/usr/local/bin
前面的。/usr/bin
PATH
答案2
GObject 的旧静态绑定位于python-gobject-2
包中。
应该存在以下路径:/usr/lib/python2.7/dist-packages/gobject/
答案3
Python 找不到模块的另一个原因是使用了错误的 Python 版本。我知道这不是 OP 的情况,但其他人找到这个问题时可能就是这种情况。
如果您的脚本找不到刚刚安装的包,请检查它是否正在使用 Python 3 运行。如果是这种情况,您需要安装该包的 Python 3 版本,例如python3-gobject
。
答案4
我可能完全错了,但我有预感你应该使用from gi.repository import GObject