一、安装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
>>>
提示找不到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模块找不到解决的更多相关文章

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

    一.安装tkinter在Linux中python默认是不安装Tkinter模块,复制代码 代码如下:[root@li250-193 ~]# pythonPython 2.6.6 (r266:84292 ...

  2. Python环境出现模块找不到

    由于上周脚受伤了,修养了几天没有学习.今天去实验室发现我的编译器跑不动了,出现找不到模块的情况,很奇怪都安装了,也不会提示什么模块找不到. 查找了些资料,发现是因为某个模块的文件损坏或者被覆盖或者安装 ...

  3. linux升级python到2.7版本

    linux的python安装包默认版本是2.6.6,yum程序默认也是依赖这个版本的python包的,但是其他一些程序如nodejs,却要的是2.7版本,因此必须要考虑升级后与yum的兼容问题.两步走 ...

  4. LInux升级Python版本2.7.11所遇问题汇总

    首先请原谅我使用校园网络,基本上打不开谷歌,网络搜取得帮助均来自度娘. 对于我这个linux新手 IT 新手来说,自己升级点东西好担心,万一出错,可能都要重来.... 参照度娘内容和自己摸索,今天晚上 ...

  5. Python之Tkinter模块学习

    本文转载自:http://www.cnblogs.com/kaituorensheng/p/3287652.html Tkinter模块("Tk 接口")是Python的标准Tk ...

  6. linux下python调用c模块

    在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明:   (1)编写C代码,hel ...

  7. python 利用tkinter模块设计出window窗口(搞笑版)

    代码如下 from tkinter import * import tkinter from tkinter import messagebox #定义了一个函数,当关闭window窗口时将会弹出一个 ...

  8. linux升级openssl和php_openssl模块

    一.OpenSSL源码升级 2014年4月8日,XP宣布正式停止服务的日子,也是OpenSSL爆出大漏洞的日子. OpenSSL主要是负责在一些敏感的数据提交上面被广泛使用,不乏大家经常访问的一些网站 ...

  9. 解决linux下node.js全局模块找不到的情况

    今天在在linux上用npm安装了pm2准备部署node项目,结果通过pm2命令启动项目的时候报pm2找不到,这很伤,以为pm2没有安装成功,但是在node安装目录下面的bin文件夹里面调用pm2却没 ...

随机推荐

  1. 推荐一款手机端的图片滑动插件iSlider

    首先先放出中文官方地址   http://be-fe.github.io/iSlider/index.html 这是demo 众所周知,移动端的图片滑动插件有很多,为什么我要推荐这个iSlider呢? ...

  2. Android 常用动画小结

    1. 渐入动画 // Request the next activity transition (here starting a new one). startActivity(new Intent( ...

  3. opengl 正方体+模拟视角旋转

    // first_3D.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <GL/glut.h> #includ ...

  4. Mybatis入门 digest

    http://www.mybatis.org/mybatis-3/zh/configuration.html userDao-mapping.xml相当于是UserDao的实现, 同时也将User实体 ...

  5. Codeforces Round#1

    A. Theatre Square 题目大意:有一个长宽为m和n的广场,用边长为a的正方形去铺盖,问铺满最少需要多少正方形 题解:题目分解为用长度为a的线条分别去覆盖长度为m和n的线条,计算两者的乘积 ...

  6. Min Stack (LeetCode) tweak it to avoid Memory Limit Exceeded

    class MinStack { public: void push(int x) { if(values.empty()) { values.push_back(x); min_indices.pu ...

  7. openStack deep dive,Retake Policy

    Method of Payment: visa MasterCard American Express Discover

  8. 黑客瑞士军刀NC使用教程

    ###################################################################### 1. 写在前面的话 ################### ...

  9. iOS 中UITableViewController 中tableView 会被状态栏覆盖的问题

    解决办法在 生命周期函数viewDidAppear中设置即可 - (void)viewDidAppear:(BOOL)animated { self.tableView.frame = CGRectM ...

  10. 1.3. chromium源代码分析 - chromiumframe - 窗口系列

    在_tWinMain中有这样两条语句: MainWindowDelegate delegate; view::Window::CreateNativeWindow(NULL, gfx::Rect(), ...