Python升级提示Tkinter模块找不到的解决方法


Posted in Python onAugust 22, 2014

一、安装tkinter
在Linux中python默认是不安装Tkinter模块,

[root@li250-193 ~]# python

Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) 

[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import Tkinter

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ImportError: No module named Tkinter

>>>

我们安装Tkinter模块
[root@li250-193 ~]# yum -y install tkinter

...

[root@li250-193 ~]# python

Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) 

[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import Tkinter

>>>

二、升级Python
Linux的Python版本默认都不叫低
查看Python版本
[root@li250-193 ~]# python -V

Python 2.6.6

DOWN新版本
[root@li250-193 ~]# wget http://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz

解压安装
[root@li250-193 ~]# tar -xf Python-2.7.4.tgz 

[root@li250-193 ~]# cd Python-2.7.4

[root@li250-193 Python-2.7.4]# ./configure

...

[root@li250-193 Python-2.7.4]# make

...

[root@li250-193 Python-2.7.4]# make install

...

看看新版本Python是否可以使用Tkinter?
[root@li250-193 Python-2.7.4]# ./python

Python 2.7.4 (default, Apr 12 2013, 08:03:09) 

[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import Tkinter       

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/root/Python-2.7.4/Lib/lib-tk/Tkinter.py", line 39, in <module>

    import _tkinter # If this fails your Python may not be configured for Tk

ImportError: No module named _tkinter

>>>

提示找不到tkinter模块?看看旧版的是不是正常
[root@li250-193 Python-2.7.4]# python 

Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) 

[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import Tkinter

>>>

旧版的没问题,难道需要yum install tkinter一次?
[root@li250-193 Python-2.7.4]# yum install tkinter

Loaded plugins: fastestmirror, security

Loading mirror speeds from cached hostfile

 * base: mirror.team-cymru.org

 * extras: mirror.team-cymru.org

 * updates: mirror.team-cymru.org

Setting up Install Process

Package tkinter-2.6.6-36.el6.x86_64 already installed and latest version

Nothing to do

提示已安装,看来不是tkinter的问题,看看tkinter模块在哪里?
[root@li250-193 Python-2.7.4]# find /usr -name *tkinter.so

/usr/lib64/python2.6/lib-dynload/_tkinter.so

找到一个,在2.6旧版本的目录下,估计是因为新版本库指向问题。于是认真读了README说明。重新配置安装
三、正确安装新版Python
首先修改Setup.dist文件
[root@li250-193 Python-2.7.4]# vim Modules/Setup.dist

找到下面这几行,把前面的井号去掉打开它
_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \

-L/usr/local/lib \

-I/usr/local/include \

-ltk8.5 -ltcl8.5 \

-lX11

以上第四行
-ltk8.5 -ltcl8.5 默认是 8.2 ,请你系统实际tcl/tk版本修改
[root@li250-193 Python-2.7.4]# rpm -qa | grep ^tk

tk-8.5.7-5.el6.x86_64

tkinter-2.6.6-36.el6.x86_64

[root@li250-193 Python-2.7.4]# rpm -qa | grep ^tcl

tcl-8.5.7-6.el6.x86_64

我系统中装的是8.5,所以这里我改成了8.5
保存退出
安装tck-devel、tk-devel
[root@li250-193 Python-2.7.4]# yum -y install tcl-devel tk-devel

开始配置安装
[root@li250-193 Python-2.7.4]# ldconfig

[root@li250-193 Python-2.7.4]# ./configure

...

[root@li250-193 Python-2.7.4]# make

...

[root@li250-193 Python-2.7.4]# make install

...

看下新版Python是否可以使用tkinter模块
[root@li250-193 Python-2.7.4]# ./python

Python 2.7.4 (default, Apr 12 2013, 08:49:11) 

[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import Tkinter

>>>

已经没问题,旧版再看看
[root@li250-193 Python-2.7.4]# /usr/bin/python2.6

Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) 

[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import Tkinter

>>>

也没问题
如果直接敲入python -V查看版本是不是最新的,如果不是可以这么干:
which出python命令路径
[root@li250-193 Python-2.7.4]# which python

/usr/local/bin/python

cp 过去
[root@li250-193 Python-2.7.4]# cp python /usr/local/bin/python

四、升级Python引起yum版本无法使用的问题解决
不少童鞋安装后就
cp python /usr/bin/python

导致yum时就提示
[root@lee ~]# yum

There was a problem importing one of the Python modules

required to run yum. The error leading to this problem was:

 

   No module named yum

 

Please install a package which provides this module, or

verify that the module is installed correctly.

 

It's possible that the above module doesn't match the

current version of Python, which is:

2.7.4 (default, Apr  9 2013, 17:12:56) 

[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]

 

If you cannot solve this problem yourself, please go to 

the yum faq at:

  http://yum.baseurl.org/wiki/Faq

   

 

[root@lee ~]#

因为yum头部默认制定python脚本的路径就是
#! /usr/bin/python

你把旧版的python替换后就是用不了,不知道为何新版Python不能被yum识别,目前唯一最好解决的方法就是修改yum头部声明
改成
#! /usr/bin/python2.6

即可,这里的python2.6是我centos默认版本,大家的默认版本是多少请按实际情况修改即可
Python 相关文章推荐
python开发之基于thread线程搜索本地文件的方法
Nov 11 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
Python实现二维曲线拟合的方法
Dec 29 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
详解python播放音频的三种方法
Sep 23 Python
在Tensorflow中查看权重的实现
Jan 24 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
python 装饰器的使用示例
Oct 10 Python
python递归函数用法详解
Oct 26 Python
Python实现多行注释的另类方法
Aug 22 #Python
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 #Python
Python发送Email方法实例
Aug 21 #Python
Python生成验证码实例
Aug 21 #Python
python中去空格函数的用法
Aug 21 #Python
python实现的重启关机程序实例
Aug 21 #Python
实例讲解Python中的私有属性
Aug 21 #Python
You might like
国内php原创论坛
2006/10/09 PHP
关于Intype一些小问题的解决办法
2008/03/28 PHP
php图片的裁剪与缩放生成符合需求的缩略图
2013/01/11 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
php实现telnet功能示例
2014/04/08 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
python自动安装pip
2014/04/24 Python
Python中unittest用法实例
2014/09/25 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
Django内容增加富文本功能的实例
2017/10/17 Python
详解Python自建logging模块
2018/01/29 Python
python计算两个数的百分比方法
2018/06/29 Python
python 命名规范知识点汇总
2020/02/14 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
如何做好总经理助理
2013/11/12 职场文书
自我鉴定三原则
2014/01/13 职场文书
2015年见习期工作总结
2014/12/12 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
js实现模拟购物商城案例
2021/05/18 Javascript