Linux升级Python提示Tkinter模块找不到解决
一、安装tkinter
在Linux中python默认是不安装Tkinter模块,
[root@li250- ~]# python
Python 2.6. (r266:, Feb , ::)
[GCC 4.4. (Red Hat 4.4.-)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tkinter
Traceback (most recent call last):
File "<stdin>", line , in <module>
ImportError: No module named Tkinter
>>>
我们安装Tkinter模块
[root@li250- ~]# yum -y install tkinter
...
[root@li250- ~]# python
Python 2.6. (r266:, Feb , ::)
[GCC 4.4. (Red Hat 4.4.-)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tkinter
>>>
二、升级Python
Linux的Python版本默认都不叫低
查看Python版本
[root@li250- ~]# python -V
Python 2.6.
DOWN新版本
[root@li250- ~]# wget http://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz
解压安装
[root@li250- ~]# tar -xf Python-2.7..tgz
[root@li250- ~]# cd Python-2.7.
[root@li250- Python-2.7.]# ./configure
...
[root@li250- Python-2.7.]# make
...
[root@li250- Python-2.7.]# 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
>>>
root@li250- Python-2.7.]# find /usr -name *tkinter.so
/usr/lib64/python2./lib-dynload/_tkinter.so
找到一个,在2.6旧版本的目录下,估计是因为新版本库指向问题。于是认真读了README说明。重新配置安装
三、正确安装新版Python
首先修改Setup.dist文件
_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
-L/usr/local/lib \
-I/usr/local/include \
-ltk8. -ltcl8. \
-lX11
以上第四行
-ltk8.5 -ltcl8.5 默认是 8.2 ,请你系统实际tcl/tk版本修改
[root@li250- Python-2.7.]# rpm -qa | grep ^tk
tk-8.5.-.el6.x86_64
tkinter-2.6.-.el6.x86_64
[root@li250- Python-2.7.]# rpm -qa | grep ^tcl
tcl-8.5.-.el6.x86_64
我系统中装的是8.5,所以这里我改成了8.5
保存退出
安装tck-devel、tk-devel
1
|
[root@li250-193 Python-2.7.4] # yum -y install tcl-devel tk-devel |
开始配置安装
1
2
3
4
5
6
7
|
[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模块
1
2
3
4
5
6
|
[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 >>> |
已经没问题,旧版再看看
1
2
3
4
5
6
|
[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命令路径
1
2
|
[root@li250-193 Python-2.7.4] # which python /usr/local/bin/python |
cp 过去
1
|
[root@li250-193 Python-2.7.4] # cp python /usr/local/bin/python |
四、升级Python引起yum版本无法使用的问题解决
不少童鞋安装后就
cp python /usr/bin/python
导致yum时就提示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
[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默认版本,大家的默认版本是多少请按实际情况修改即可
Linux升级Python提示Tkinter模块找不到解决的更多相关文章
- Python升级提示Tkinter模块找不到的解决方法
一.安装tkinter在Linux中python默认是不安装Tkinter模块,复制代码 代码如下:[root@li250-193 ~]# pythonPython 2.6.6 (r266:84292 ...
- Python环境出现模块找不到
由于上周脚受伤了,修养了几天没有学习.今天去实验室发现我的编译器跑不动了,出现找不到模块的情况,很奇怪都安装了,也不会提示什么模块找不到. 查找了些资料,发现是因为某个模块的文件损坏或者被覆盖或者安装 ...
- linux升级python到2.7版本
linux的python安装包默认版本是2.6.6,yum程序默认也是依赖这个版本的python包的,但是其他一些程序如nodejs,却要的是2.7版本,因此必须要考虑升级后与yum的兼容问题.两步走 ...
- LInux升级Python版本2.7.11所遇问题汇总
首先请原谅我使用校园网络,基本上打不开谷歌,网络搜取得帮助均来自度娘. 对于我这个linux新手 IT 新手来说,自己升级点东西好担心,万一出错,可能都要重来.... 参照度娘内容和自己摸索,今天晚上 ...
- Python之Tkinter模块学习
本文转载自:http://www.cnblogs.com/kaituorensheng/p/3287652.html Tkinter模块("Tk 接口")是Python的标准Tk ...
- linux下python调用c模块
在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明: (1)编写C代码,hel ...
- python 利用tkinter模块设计出window窗口(搞笑版)
代码如下 from tkinter import * import tkinter from tkinter import messagebox #定义了一个函数,当关闭window窗口时将会弹出一个 ...
- linux升级openssl和php_openssl模块
一.OpenSSL源码升级 2014年4月8日,XP宣布正式停止服务的日子,也是OpenSSL爆出大漏洞的日子. OpenSSL主要是负责在一些敏感的数据提交上面被广泛使用,不乏大家经常访问的一些网站 ...
- 解决linux下node.js全局模块找不到的情况
今天在在linux上用npm安装了pm2准备部署node项目,结果通过pm2命令启动项目的时候报pm2找不到,这很伤,以为pm2没有安装成功,但是在node安装目录下面的bin文件夹里面调用pm2却没 ...
随机推荐
- Android 内部存储安装apk文件实现
目前国内市场的山寨机横行,安卓手机升级也是一天一个样,对于原来老手机可能没有SDCARD,导致我们的APP不能下载资源,无法更新APP,针对这种情况有以下解决方案.通过以下函数判断是否有SD卡再判断下 ...
- Latex beamer
使用明体(gbsn)和楷体(gkai)两种字型.以下的编程是一开始的宣告,并自动生成第一张封面投影片. \documentclass[cjk]{beamer}\usepackage{CJKutf8}\ ...
- MyBatis使用DEMO及cache的使用心得
下面是一个简单的MyBatis使用DEMO. 整体结构 整体代码大致如下: POM依赖 需要引用两个jar包,一个是mybatis,另一个是mysql-connector-java,如果是maven工 ...
- Mysql 忘密码 + Phpadmin 修改密码无法登陆
mysql有时候忘记密码了怎么办?我给出案例和说明!一下就解决了! Windows下的实际操作如下 1.关闭正在运行的MySQL. 2.打开DOS窗口,转到mysql\bin目录. 3.输入mysql ...
- HDU 4957 Poor Mitsui
题解:记答案为ans,已知,对一个确定的顺序,计算所用的时间长短就是从最后向前计算,计算方法如下: ans+=(p[i].b+ans*p[i].a)/(v-p[i].a) 那么,应该如何调整顺序使得答 ...
- hdoj 2620 Bone Collector(0-1背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 思路分析:该问题为经典的0-1背包问题:假设状态dp[i][v]表示前i件物品恰放入一个容量为v ...
- java类的封装、继承、多态
一.封装(encapsulation) 封装性就是把类(对象)的属性和行为结合成一个独立的相同单位,并尽可能隐蔽类(对象)的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系.封装的特 ...
- std::map中函数用法集合
1 STL的map表里有一个erase方法用来从一个map中删除掉指令的节点 2 eg: 3 map<string,string> mapTest; 4 typedef map< ...
- 小猪猪逆袭成博士之C++基础篇(一)数据精度、强制类型转换、变量命名规则
小猪猪逆袭成博士之C++基础篇(一) 关键词: 数据精度.强制类型转换.变量命名规则 综述: 1.大多数编程语言通过两种方式来进一步补充其特征:一是赋予程序员自定义数据类型的权利(C++中的类):二是 ...
- JavaSE_ 面向对象 总目录(7~10)
JavaSE学习总结第07天_面向对象2 07.01 成员变量和局部变量的区别07.02 方法的形式参数是类名的调用07.03 匿名对象的概述和应用07.04 封装的概述07.05 封装的好处和设计原 ...