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

 更新时间:2014年08月22日 08:57:23   投稿:junjie  
这篇文章主要介绍了Python升级提示Tkinter模块找不到的解决方法,Tkinter的是Tk的GUI工具包,用来开发GUI界面,需要的朋友可以参考下

一、安装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 cv2读取rtsp实时码流按时生成连续视频文件方式

    python cv2读取rtsp实时码流按时生成连续视频文件方式

    今天小编就为大家分享一篇python cv2读取rtsp实时码流按时生成连续视频文件方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 基于Python制作一个简单的文章搜索工具

    基于Python制作一个简单的文章搜索工具

    这篇文章主要为大家详细介绍了如何基于Python制作一个简单的文章搜索工具,都是一些基础的应用,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-05-05
  • python遍历迭代器自动链式处理数据的实例代码

    python遍历迭代器自动链式处理数据的实例代码

    迭代器也是用来遍历对象成员的,下面这篇文章主要给大家介绍了关于python遍历迭代器自动链式处理数据的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • python使用pip成功导入库后还是报错的解决方法(针对vscode)

    python使用pip成功导入库后还是报错的解决方法(针对vscode)

    最近在学爬虫,但在使用Scrapy包时,在终端通过pip装好包以后,在pycharm中导入包时,依然会报错,下面这篇文章主要给大家介绍了关于python使用pip成功导入库后还是报错的解决方法,需要的朋友可以参考下
    2022-07-07
  • python实现请求数据包签名

    python实现请求数据包签名

    这篇文章主要介绍了python实现请求数据包签名,主要以python怎么快速对请求体做一次签名为主题,塑造实现请求数据包签名过程,具有一定得参考价值,需要的小伙伴可以参考一下
    2022-02-02
  • 利用Python编写一个藏头诗在线生成器

    利用Python编写一个藏头诗在线生成器

    这篇文章主要介绍了如何利用Python编写一个藏头诗在线生成器,文中的示例代码讲解详细,感兴趣的同学可以跟随小编一起动手尝试一下
    2022-04-04
  • python开发游戏的前期准备

    python开发游戏的前期准备

    在本篇文章中我们给大家分享了关于python开发游戏的前期准备以及用到的工具等内容,需要的朋友们跟着参考下。
    2019-05-05
  • python3在同一行内输入n个数并用列表保存的例子

    python3在同一行内输入n个数并用列表保存的例子

    今天小编就为大家分享一篇python3在同一行内输入n个数并用列表保存的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 基于python实现模拟数据结构模型

    基于python实现模拟数据结构模型

    这篇文章主要介绍了基于python实现模拟数据结构模型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 详解OpenCV和PIL读取和显示图像的差异

    详解OpenCV和PIL读取和显示图像的差异

    这篇文章主要介绍了OpenCV和PIL读取和显示图像的差异,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论