LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3406|回复: 35

[help]Python问题:ImportError: No module named XXX

[复制链接]
发表于 2009-8-20 11:16:48 | 显示全部楼层 |阅读模式
系统一直用的很好,直到我安装了mirage和obmenu,启动的时候报告:ImportError: No module named pygtk  和 ImportError: No module named gtk。

听说是python升级的问题,我一个新手哪里知道还要python-updater啊。于是:

  1. #eselect python list
  2. Available python interpreters:
  3.   [1]   python2.5
  4.   [2]   python2.6 *
  5.   [3]   python3.1
复制代码

原来不知不觉中已经装了这么多python了。

不知道怎么解决,看有人emerge -e world,于是我就:

  1. emerge -e system
复制代码


结果告诉我什么包包出错了,花花一大片,我就打算重新安装那个出错的包。结果:

emerge 不能运行了。

人们说要重装python,我看了看目录中还有python2.5的可执行文件,于是

  1. cp python2.5 python
复制代码


emerge可以运行了。我重装python2.6,装到最后告诉我python不是链接。气愤啊。

  1. ln -s python2.5 python
复制代码


好了,emerge也没什么问题了。

这次我可没忘了python-updater,老半天啊──费电。

这次总该行了吧:
  1. $ mirage
  2. Traceback (most recent call last):
  3.   File "/usr/bin/mirage", line 27, in <module>
  4.     import mirage
  5.   File "/usr/lib/python2.6/site-packages/mirage.py", line 26, in <module>
  6.     import pygtk
  7. ImportError: No module named pygtk
复制代码

我重装pygtk──无效。

我想起来python-updater的时候它显示3.1--》2.6,恩我这样:

  1. python-updater --old-version 2.5
复制代码


又是老半天噢。

我运行mirage,还那样。

我看人家解决这类问题的时候都是很简单啊。

我再重装pygtk──无效。

参照:http://www.linuxsir.cn/bbs/showt ... No+module+named+gtk

运行:
  1. python -v
  2. >>> import pygtk
  3. Traceback (most recent call last):
  4.   File "<stdin>", line 1, in <module>
  5. ImportError: No module named pygtk


  6. >>> print sys.path
  7. ['', '/usr/lib/python26.zip', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/site-packages', '/usr/lib/portage/pym']
复制代码

系统路径也没什么问题。

我python2.6里边好像有gtk

  1. # ls -all /usr/lib/python2.6/site-packages/gtk-2.0/gtk
  2. total 2084
  3. drwxr-xr-x 2 root root    4096 2009-08-20 10:16 .
  4. drwxr-xr-x 7 root root    4096 2009-08-20 10:16 ..
  5. -rw-r--r-- 1 root root    2449 2009-08-20 10:16 compat.py
  6. -rw-r--r-- 1 root root    2364 2009-08-20 10:16 compat.pyc
  7. -rw-r--r-- 1 root root    2364 2009-08-20 10:16 compat.pyo
  8. -rw-r--r-- 1 root root    3027 2009-08-20 10:16 deprecation.py
  9. -rw-r--r-- 1 root root    3687 2009-08-20 10:16 deprecation.pyc
  10. -rw-r--r-- 1 root root    3687 2009-08-20 10:16 deprecation.pyo
  11. -rwxr-xr-x 1 root root    1360 2009-08-20 10:16 glade.la
  12. -rwxr-xr-x 1 root root   18172 2009-08-20 10:16 glade.so
  13. -rwxr-xr-x 1 root root    1309 2009-08-20 10:16 _gtk.la
  14. -rwxr-xr-x 1 root root 1916108 2009-08-20 10:16 _gtk.so
  15. -rw-r--r-- 1 root root    4767 2009-08-20 10:16 __init__.py
  16. -rw-r--r-- 1 root root    2711 2009-08-20 10:16 __init__.pyc
  17. -rw-r--r-- 1 root root    2711 2009-08-20 10:16 __init__.pyo
  18. -rw-r--r-- 1 root root   29921 2009-08-20 10:16 keysyms.py
  19. -rw-r--r-- 1 root root   41538 2009-08-20 10:16 keysyms.pyc
  20. -rw-r--r-- 1 root root   41538 2009-08-20 10:16 keysyms.pyo
  21. -rw-r--r-- 1 root root    2759 2009-08-20 10:16 _lazyutils.py
  22. -rw-r--r-- 1 root root    3274 2009-08-20 10:16 _lazyutils.pyc
  23. -rw-r--r-- 1 root root    3274 2009-08-20 10:16 _lazyutils.pyo
复制代码


我现在没有办法了……
 楼主| 发表于 2009-8-20 11:47:33 | 显示全部楼层
找不到pygtk是安装pygtk。

找不到gtk我应该安装哪个软件包?

装了也找不到,这个……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-20 12:38:26 | 显示全部楼层
安装pygtk时,有这么几个提示,不知什么意思:

* Cleaning orphaned Python bytecode from /usr/lib/python2.6/site-packages/gtk-2.0 ..
/var/tmp/binpkgs/dev-python/pygtk-2.14.1-r1/temp/environment: line 2882: alternatives_auto_makesym: command not found
/var/tmp/binpkgs/dev-python/pygtk-2.14.1-r1/temp/environment: line 2883: alternatives_auto_makesym: command not found
回复 支持 反对

使用道具 举报

发表于 2009-8-20 12:38:48 | 显示全部楼层
python-updater
看下参数列表,可以指定从什么版本更新。

现在的话你可以把python 3.1手动mask掉,因为目前没有用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-20 12:57:31 | 显示全部楼层
我重新从2.5updater了一次了,还是老样子。

我现在把2.5、3.1都emerge -C了。

重装了pygtk还是没有解决问题。

我看python系统路径中只有'/usr/lib/python2.6/site-packages'
没有/usr/lib/python2.6/site-packages/gtk-2.0'、  /usr/lib/python2.6/site-packages/gtk-2.0/gtk/'

你说是这个问题吗?

要加路径的话,我

python
import sys
sys.path.append('/path/.../')
sys.path

现在能够显示出我加进去的路径了。可是我exit()退出来,再进去,刚加的路径并没有保存。
回复 支持 反对

使用道具 举报

发表于 2009-8-20 13:07:29 | 显示全部楼层
python-updater --old-version 3.1 试过了没有?不能只更新2.5的呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-20 13:13:31 | 显示全部楼层
我第一次python-updater,它就告诉我是从3.1到2.6。

我后来觉得不对劲儿,就又来了一次2.5的。

updater完了之后。

2.5、3.1的“/usr/lib/python2.6/site-packages/”目录下都已经没有东西了。

这之后我才 -C的2.5和3.1。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-20 13:30:19 | 显示全部楼层
我现在认为就是python路径的问题!

可是我应该怎么修改python的系统路径呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-20 13:34:19 | 显示全部楼层
我在/usr/bin/obmenu这个文件里边加上了:
  1. import sys
  2. sys.path.append('/usr/lib/python2.6/site-packages/gtk-2.0')
复制代码

现在可以启动obmenu了。

不过这也不是长久之计呀。
回复 支持 反对

使用道具 举报

发表于 2009-8-20 14:57:01 | 显示全部楼层
你都 “/usr/lib/python2.6/site-packages/”了,還說什麽2.5、3.1呀……打錯了吧。

最好的檢查有沒有用到其它版本python的辦法就是revdep-rebuild -p

要你安裝其它版本的話,說明還沒有解決完。

昨天在#gentoo-chat上有個人問題和你一樣。解決了。就是用這個兩個東西反復檢查。不是路徑問題。對了,把python的glib和gtk(pygtk)都重裝一下,還有dev-util/glib也是,都重裝一下。那個人最後一步就是這麼做的。那個人ID叫chewed-on,你去#gentoo找他讓他看下/var/log/emerge.log看看最後做了什麽。
回复 支持 反对

使用道具 举报

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

本版积分规则

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