当前位置: 首页 > 编程笔记 >

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

公冶同
2023-03-14
本文向大家介绍Python升级提示Tkinter模块找不到的解决方法,包括了Python升级提示Tkinter模块找不到的解决方法的使用技巧和注意事项,需要的朋友参考一下

一、安装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 pip安装模块提示错误解决方案,包括了Python pip安装模块提示错误解决方案的使用技巧和注意事项,需要的朋友参考一下 问题如下 python pip安装模块提示错误failed to create process 原因: 报这个错误的原因,是因为python的目录名称或位置发生改动。 解决办法: 1.找到修改python所在的目录,打开scripts目录,如下图找

  • 本文向大家介绍Django1.3添加app提示模块不存在的解决方法,包括了Django1.3添加app提示模块不存在的解决方法的使用技巧和注意事项,需要的朋友参考一下 使用Django添加应用的时候,一直提示Error: No module named myapp。意思是找不到这个名字的应用,可是我已经startapp成功,并且系统已经创建相应的目录 难道官方的文档有错,我manage.py st

  • 问题内容: 我们最近尝试在构建服务器上升级到节点v7.0.0,但是在“ bower_concat”步骤 失败的应用程序构建任务期间开始出现问题: 我们已经安装了什么: v7.0.0(通过 “ nodesource”存储库安装) 4.0.1 使用(如果相关) 0.6.0 Grunt构建任务配置: 和艰巨的任务: 请注意,它在节点v6.9.0上没有任何问题。 是什么原因引起的?我们是否可以解决该问题而

  • 项目目录映像 我正在尝试使用以下语法在我的react应用程序中导入firebase: 从.../Firebase/config导入{auth} 但我面临以下问题: ./src/Pages/Login/Login.js模块未找到:无法解决.../Firebase/config 这是我的配置文件 从“/firebase/app”导入*firebase/auth”作为firebase;导入“fireba

  • 本文向大家介绍Python运行提示缺少模块问题解决方案,包括了Python运行提示缺少模块问题解决方案的使用技巧和注意事项,需要的朋友参考一下 背景: 在pycharm中运行正常,但是使用命令方式就提示没有模块 解决方案 在Python安装目录下的\Lib\site-packages文件夹中建立一个.pth文件,内容为自己写的 查看包是否有导入 再次运行,就成功了 以上就是本文的全部内容,希望对大

  • 问题内容: 我是Python的初学者。在开始之前,这是我的Python文件夹结构 在下面,我有一个名为的文件夹,其中有一个Python文件,其内容如下: 接下来,我位于文件夹中,位于上一级: 每当我运行它都会导致错误 我有什么想念的吗? 问题答案: Python中的所有模块都必须具有特定的目录结构。您可以在此处找到详细信息。 在目录下创建一个空文件,使您的目录结构如下所示: 同样在文件中,将imp