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 相关文章推荐
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
Android应用开发中Action bar编写的入门教程
Feb 26 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 Python
Python学习之用pygal画世界地图实例
Dec 07 Python
分析python切片原理和方法
Dec 19 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
Feb 08 Python
python判断列表的连续数字范围并分块的方法
Nov 16 Python
Python神奇的内置函数locals的实例讲解
Feb 22 Python
Python使用微信接入图灵机器人过程解析
Nov 04 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 Python
Pycharm如何自动生成头文件注释
Nov 14 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
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
vue.js表格分页示例
2016/10/18 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
JavaScript数组去重的方法总结【12种方法,号称史上最全】
2019/02/28 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
python实现上传下载文件功能
2020/11/19 Python
python 构造三维全零数组的方法
2018/11/12 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
Python os库常用操作代码汇总
2020/11/03 Python
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
酒店管理专业毕业生推荐信
2013/11/10 职场文书
小学生演讲稿
2014/01/12 职场文书
多人股份制合作协议书
2016/03/19 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA