LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: lifesucks

关于gdesklets的问题(已解决)

[复制链接]
 楼主| 发表于 2008-8-2 15:39:48 | 显示全部楼层
Post by lifesucks;1881428


提示缺少pygtk,确认发现pygtk已安装
(期间参考gentoo bug ,emerge python 2.4 ,系统默认已安装python 2.5)


http://ubuntuforums.org/showthread.php?t=582721
Post by zhllg;1881592

另外我给你的那个命令是让你看你的系统里pygtk的路径应该在什么地方
然后你自己看看那里是否真的有pygtk

我得到结果和老大你说的一样
python -c 'import sys; print sys.path' | grep -o '/usr[^ ]*gtk-2.0'
/usr/lib/python2.5/site-packages/gtk-2.0
这个可以说明什么吗?
这是该目录下的情况
enya@shinhwa ~ $ ls -l /usr/lib/python2.5/site-packages/
total 48
-rw-r--r-- 1 root root   119 Aug  2 03:36 README
-rwxr-xr-x 1 root root 20044 Aug  2 04:12 fchksum.so
drwxr-xr-x 7 root root  4096 Aug  2 06:15 gtk-2.0
lrwxrwxrwx 1 root root    13 Aug  2 06:15 pygtk.pth -> pygtk.pth-2.0
-rw-r--r-- 1 root root     8 Aug  2 06:14 pygtk.pth-2.0
lrwxrwxrwx 1 root root    12 Aug  2 06:15 pygtk.py -> pygtk.py-2.0
-rw-r--r-- 1 root root  2946 Aug  2 06:14 pygtk.py-2.0
-rw-r--r-- 1 root root  2084 Aug  2 06:15 pygtk.pyc
-rw-r--r-- 1 root root  1791 Aug  2 06:15 pygtk.pyo
-rw-r--r-- 1 root root   302 Aug  2 04:12 python_fchksum-1.7.1-py2.5.egg-info


这是gtk-2.0目录下
enya@shinhwa ~ $ ls -l /usr/lib/python2.5/site-packages/gtk-2.0/
total 612
-rwxr-xr-x 1 root root    960 Aug  2 05:54 atk.la
-rwxr-xr-x 1 root root 226892 Aug  2 05:55 atk.so
drwxr-xr-x 2 root root   4096 Aug  2 06:05 bonobo
-rw-r--r-- 1 root root  15376 Aug  2 06:14 dsextras.py
-rw-r--r-- 1 root root  16386 Aug  2 06:15 dsextras.pyc
-rw-r--r-- 1 root root  16386 Aug  2 06:15 dsextras.pyo
-rwxr-xr-x 1 root root    993 Aug  2 06:05 gconf.la
-rwxr-xr-x 1 root root  61608 Aug  2 06:05 gconf.so
drwxr-xr-x 2 root root   4096 Aug  2 06:05 gnome
-rwxr-xr-x 1 root root   1442 Aug  2 06:05 gnomecanvas.la
-rwxr-xr-x 1 root root  37876 Aug  2 06:05 gnomecanvas.so
drwxr-xr-x 2 root root   4096 Aug  2 06:05 gnomevfs
drwxr-xr-x 2 root root   4096 Aug  2 06:15 gobject
drwxr-xr-x 2 root root   4096 Aug  2 03:49 gtk
-rwxr-xr-x 1 root root   1453 Aug  2 05:54 gtkunixprint.la
-rwxr-xr-x 1 root root  27124 Aug  2 05:55 gtkunixprint.so
-rwxr-xr-x 1 root root    978 Aug  2 05:54 pango.la
-rwxr-xr-x 1 root root 128148 Aug  2 05:55 pango.so
-rwxr-xr-x 1 root root   1334 Aug  2 05:54 pangocairo.la
-rwxr-xr-x 1 root root  14468 Aug  2 05:55 pangocairo.so

谢谢,请帮助
回复 支持 反对

使用道具 举报

发表于 2008-8-2 19:17:32 | 显示全部楼层
如果你对一个问题完全不理解,而你想通过搜索来寻找答案
你需要寻找和你的症状完全一样的,版本完全一样的,发行版一样的,而且发生时间差不太多的问题的答案
否则,如果盲目的照做的话,很可能会把问题搞的更糟

你可以一步一步的调试
首先删掉python2.4,看问题是否存在。因为不管怎样,你都不需要通过安装旧的python版本来解决问题。
然后确认你是否可以在python里手动import gtk
执行python回车,输入import gtk看看是否成功
如果不行,ctrl-d退出
然后执行python -v,再import gtk看看是读取什么文件的时候出了问题
如果手动import没有问题,那我怀疑你的系统里还有别的python,而gdesklet调用了那个python,但那个python不能import。或者gdesklet import gtk时,sys.path被修改,pygtk的路径被从里面删掉。你可以在import gtk那句话前面加上
import sys
print sys.path
来检查sys.path里确实有pygtk的路径
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-2 20:35:03 | 显示全部楼层
谢谢BOSS大人,晚些试下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-2 23:05:47 | 显示全部楼层
Post by zhllg;1881742
如果你对一个问题完全不理解,而你想通过搜索来寻找答案
你需要寻找和你的症状完全一样的,版本完全一样的,发行版一样的,而且发生时间差不太多的问题的答案
否则,如果盲目的照做的话,很可能会把问题搞的更糟

你可以一步一步的调试
首先删掉python2.4,看问题是否存在。因为不管怎样,你都不需要通过安装旧的python版本来解决问题。
然后确认你是否可以在python里手动import gtk
执行python回车,输入import gtk看看是否成功
如果不行,ctrl-d退出
然后执行python -v,再import gtk看看是读取什么文件的时候出了问题
如果手动import没有问题,那我怀疑你的系统里还有别的python,而gdesklet调用了那个python,但那个python不能import。或者gdesklet import gtk时,sys.path被修改,pygtk的路径被从里面删掉。你可以在import gtk那句话前面加上
import sys
print sys.path
来检查sys.path里确实有pygtk的路径



emerge -C dev-lang/python-2.4.4-r6
删除python2.4后
shinhwa enya # python
python             python-config      python-config-2.5  python-updater     python2            python2.5

shinhwa enya # whereis python
python: /usr/bin/python2.5 /usr/bin/python /usr/lib/python2.5 /usr/lib/python2.4 /usr/X11R6/bin/python2.5 /usr/X11R6/bin/python /usr/include/python2.5 /usr/include/python2.4 /usr/share/man/man1/python.1.bz2

shinhwa enya # whereis python2
python2: /usr/bin/python2.5 /usr/bin/python2 /usr/lib/python2.5 /usr/lib/python2.4 /usr/X11R6/bin/python2.5 /usr/X11R6/bin/python2 /usr/include/python2.5 /usr/include/python2.4
不知道这里的头文件、库文件会有影响吗(2.4)

shinhwa enya # ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Aug  3 06:35 /usr/bin/python -> python2.5
shinhwa enya # ls -l /usr/bin/python2
lrwxrwxrwx 1 root root 9 Aug  3 06:35 /usr/bin/python2 -> python2.5

尝试1-1
shinhwa enya # python
Python 2.5.2 (r252:60911, Aug  2 2008, 03:34:59)
[GCC 4.1.2 (Gentoo 4.1.2 p1.0.2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gtk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.py", line 48, in <module>
    from gtk import _gtk
ImportError: No module named cairo

尝试1-2
shinhwa enya # python
Python 2.5.2 (r252:60911, Aug  2 2008, 03:34:59)
[GCC 4.1.2 (Gentoo 4.1.2 p1.0.2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gtk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.py", line 48, in <module>
    from gtk import _gtk
ImportError: No module named cairo
>>> import sys
>>> import gtk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.py", line 48, in <module>
    from gtk import _gtk
ImportError: No module named cairo
>>> print sys.path
['', '/usr/lib/portage/pym', '/usr/lib/python25.zip', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/gtk-2.0']
>>>


尝试1-3
shinhwa enya # python -v
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# /usr/lib/python2.5/site.pyc matches /usr/lib/python2.5/site.py
import site # precompiled from /usr/lib/python2.5/site.pyc
# /usr/lib/python2.5/os.pyc matches /usr/lib/python2.5/os.py
import os # precompiled from /usr/lib/python2.5/os.pyc
import errno # builtin
import posix # builtin
# /usr/lib/python2.5/posixpath.pyc matches /usr/lib/python2.5/posixpath.py
import posixpath # precompiled from /usr/lib/python2.5/posixpath.pyc
# /usr/lib/python2.5/stat.pyc matches /usr/lib/python2.5/stat.py
import stat # precompiled from /usr/lib/python2.5/stat.pyc
# /usr/lib/python2.5/UserDict.pyc matches /usr/lib/python2.5/UserDict.py
import UserDict # precompiled from /usr/lib/python2.5/UserDict.pyc
# /usr/lib/python2.5/copy_reg.pyc matches /usr/lib/python2.5/copy_reg.py
import copy_reg # precompiled from /usr/lib/python2.5/copy_reg.pyc
# /usr/lib/python2.5/types.pyc matches /usr/lib/python2.5/types.py
import types # precompiled from /usr/lib/python2.5/types.pyc
import _types # builtin
# /usr/lib/python2.5/warnings.pyc matches /usr/lib/python2.5/warnings.py
import warnings # precompiled from /usr/lib/python2.5/warnings.pyc
# /usr/lib/python2.5/linecache.pyc matches /usr/lib/python2.5/linecache.py
import linecache # precompiled from /usr/lib/python2.5/linecache.pyc
import encodings # directory /usr/lib/python2.5/encodings
# /usr/lib/python2.5/encodings/__init__.pyc matches /usr/lib/python2.5/encodings/__init__.py
import encodings # precompiled from /usr/lib/python2.5/encodings/__init__.pyc
# /usr/lib/python2.5/codecs.pyc matches /usr/lib/python2.5/codecs.py
import codecs # precompiled from /usr/lib/python2.5/codecs.pyc
import _codecs # builtin
# /usr/lib/python2.5/encodings/aliases.pyc matches /usr/lib/python2.5/encodings/aliases.py
import encodings.aliases # precompiled from /usr/lib/python2.5/encodings/aliases.pyc
# /usr/lib/python2.5/encodings/utf_8.pyc matches /usr/lib/python2.5/encodings/utf_8.py
import encodings.utf_8 # precompiled from /usr/lib/python2.5/encodings/utf_8.pyc
Python 2.5.2 (r252:60911, Aug  2 2008, 03:34:59)
[GCC 4.1.2 (Gentoo 4.1.2 p1.0.2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
dlopen("/usr/lib/python2.5/lib-dynload/readline.so", 2);
import readline # dynamically loaded from /usr/lib/python2.5/lib-dynload/readline.so
>>> import gtk
import gtk # directory /usr/lib/python2.5/site-packages/gtk-2.0/gtk
# /usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.pyc matches /usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.py
import gtk # precompiled from /usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.pyc
import gobject # directory /usr/lib/python2.5/site-packages/gtk-2.0/gobject
# /usr/lib/python2.5/site-packages/gtk-2.0/gobject/__init__.pyc matches /usr/lib/python2.5/site-packages/gtk-2.0/gobject/__init__.py
import gobject # precompiled from /usr/lib/python2.5/site-packages/gtk-2.0/gobject/__init__.pyc
# /usr/lib/python2.5/site-packages/gtk-2.0/gobject/constants.pyc matches /usr/lib/python2.5/site-packages/gtk-2.0/gobject/constants.py
import gobject.constants # precompiled from /usr/lib/python2.5/site-packages/gtk-2.0/gobject/constants.pyc
dlopen("/usr/lib/python2.5/site-packages/gtk-2.0/gobject/_gobject.so", 2);
import gobject._gobject # dynamically loaded from /usr/lib/python2.5/site-packages/gtk-2.0/gobject/_gobject.so
# /usr/lib/python2.5/site-packages/gtk-2.0/gobject/propertyhelper.pyc matches /usr/lib/python2.5/site-packages/gtk-2.0/gobject/propertyhelper.py
import gobject.propertyhelper # precompiled from /usr/lib/python2.5/site-packages/gtk-2.0/gobject/propertyhelper.pyc
dlopen("/usr/lib/python2.5/site-packages/gtk-2.0/gtk/_gtk.so", 2);
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.py", line 48, in <module>
    from gtk import _gtk
ImportError: No module named cairo
在此基础上
>>> import cairo
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cairo
>>>

希望得到指点与帮助,谢谢boss与其他的弟兄
回复 支持 反对

使用道具 举报

发表于 2008-8-2 23:14:21 | 显示全部楼层
/usr/lib/python2.5/site-packages/cairo/
有这个么?

如果没有估计是当时升级python的时候没有执行python-updater
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-2 23:38:42 | 显示全部楼层
Post by zhllg;1881842
/usr/lib/python2.5/site-packages/cairo/
有这个么?

如果没有估计是当时升级python的时候没有执行python-updater


运行python-updater似乎要emerge好几个ebuild,所以没有做,等会试下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-3 01:10:27 | 显示全部楼层
运行python-updater
显示Couldn't determine any previous Python version(s).
可能是因为把2.4 unemerge 掉的缘故,妄猜。

加入python-updater --old-version 2.4
emerge 依赖的ebuild后
显示一系列需要升级,开始emerge 计87项,可能和我的USE列的太多有关,ctrl-D,只
emerge -av '=dev-python/pycairo-1.4.12'
emerge -av pygtk

gdesklets 启动正常
至此非常感谢boss和其他的弟兄的帮助,谢谢
回复 支持 反对

使用道具 举报

发表于 2008-8-3 04:34:06 | 显示全部楼层
你后来又运行了python-updater么?
升级python的时候这个步骤是不能省的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表