Python升级提示Tkinter模块找不到的解决方法,pythontkinter
Python升级提示Tkinter模块找不到的解决方法,pythontkinter
一、安装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版本无法使用的问题解决
不少童鞋安装后就
导致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脚本的路径就是
你把旧版的python替换后就是用不了,不知道为何新版Python不能被yum识别,目前唯一最好解决的方法就是修改yum头部声明
改成
即可,这里的python2.6是我centos默认版本,大家的默认版本是多少请按实际情况修改即可
写好的程序用用pythonw.exe带w的执行文件运行。就不会产生窗口。
py属于开源软件,不提倡exe这种打包方式。
只需要把python解释器和代码放倒一起,在客户机上解包
运行时只要建立一个快捷方式,指向
python 源代码.py
或者
pythonw 源代码.py
就可以了
我去查了下,Tkinter是Python内置的。
你可以去:
用google搜:
Tkinter
然后找到:
24.1. Tkinter — Python interface to Tcl/Tk — Python v2.7.3
可以看到,直接使用:
import Tkinter
就可以导入了。
另,帮你拷贝了示例代码:
from Tkinter import *
class Application(Frame):
def say_hi(self):
print "hi there, everyone!"
def createWidgets(self):
self.QUIT = Button(self)
self.QUIT["text"] = "QUIT"
self.QUIT["fg"] = "red"
self.QUIT["command"] = self.quit
self.QUIT.pack({"side": "left"})
self.hi_there = Button(self)
self.hi_there["text"] = "Hello",
self.hi_there["command"] = self.say_hi
self.hi_there.pack({"side": "left"})
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
root = Tk()
app = Application(master=root)
app.mainloop()
更多python相关的东西,感兴趣的话,可以用google搜:
crifan Python语言总结
而找到我写的教程。
刚去写了个帖子,测试了一下tkinter,需要的可以去看看:
【记录】折腾Python中的Tkinter
(此处不给贴地址,请自己用google搜标题,即可找到帖子地址)
相关内容
- python错误:AttributeError: 'module' object has no attribute 'setd
- Python中还原JavaScript的escape函数编码后字符串的方法,
- python with statement 进行文件操作指南,
- Python with的用法,Pythonwith用法
- Python安装Imaging报错:The _imaging C module is not installed问题
- Python中让MySQL查询结果返回字典类型的方法,pythonmysq
- Python使用MD5加密字符串示例,pythonmd5
- Python实现的石头剪子布代码分享,python石头剪子布
- Python解释执行原理分析,python解释原理
- Python实现远程调用MetaSploit的方法,pythonmetasploit
评论关闭