ubuntu12.04.4安装tcl/tk和Tkinter

本文提供了一种解决Python中Tkinter模块导入失败的方法,通过详细步骤指导如何在Ubuntu环境下安装Tkinter及其依赖项tcl和tk,并确保与Python 2.7版本兼容。
1. 问题描述:运行python文件时出现以下信息:
cryhelyxx@ada:~/python_workspace$ python httpurl.py 
Traceback (most recent call last):
  File "httpurl.py", line 4, in <module>
    import Tkinter
  File "/usr/local/lib/python2.7/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
2. 解决方法:
终端输入安装Tkinter:
sudo apt-get install python-tk
cryhelyxx@ada:~/python_workspace$ sudo apt-get install python-tk
[sudo] password for cryhelyxx: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会安装下列额外的软件包:
  blt tcl8.5 tk8.5
建议安装的软件包:
  blt-demo tix python-tk-dbg tclreadline
下列【新】软件包将被安装:
  blt python-tk tcl8.5 tk8.5
升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 3,846 kB 的软件包。
解压缩后会消耗掉 11.4 MB 的额外空间。
您希望继续执行吗?[Y/n]y
3. 安装tcl和tk
tcl和tk的下载地址:http://www.tcl.tk/software/tcltk/download.html
目前我下载的tcl/tk源代码包是 tcl8.6.1-src.tar.gz 和 tk8.6.1-src.tar.gz
(1) 安装tcl8.6.1-src.tar.gz
tar -xzvf tcl8.6.1-src.tar.gz
cd tcl8.6.1/unix
执行./configure脚本生成makefile文件
./configure
编译
make
安装
sudo make install
(2)安装tk8.6.1-src.tar.gx:
执行./configure脚本
./configure
编译:
make
编译时如果出现以下错误信息:
/home/cryhelyxx/下载/tk8.6.1/unix/../generic/tk.h:96:25: 致命错误: X11/Xlib.h:没有那个文件或目录
编译中断。
make: *** [tk3d.o] 错误 1
由在终端运行:
sudo apt-get install libx11-dev
接着安装:
sudo make install
(3) 安装完tcl和tk后, 查看她们的版本号, 终端输入:
wish
info tclversion
puts $tk_version

这里我比较困惑, 我明明安装的是tcl8.6和tk8.6, 但版本却显示tcl8.5和tk8.5, 这里我就不多研究了, 欢迎各位大神来指点...
4. 修改Setup.dist文件
进行python安装包解压后那个文件夹里, 命令打开Setup.dise文件:
vim Modules/Setup.dist

修改上面5处地方, 把她们前面的#删除掉, 默认的tcl和tk是8.2, 等下, 看上面第2步, 可以知道已经安装的tcl和tk的版本是8.5, 那么我们就将这里的tk8.3和tcl8.2修改为tk8.5和tcl8.5, 保存退出。
5. 现在重装python2.7.6, 用以下命令一次性完成配置、编译、安装:
./configure && make && sudo make install

执行make命令时出现以下信息:
Python build finished, but the necessary bits to build these modules were not found:
_bsddb             _curses            _curses_panel   
_sqlite3           bsddb185           bz2             
dbm                dl                 gdbm            
imageop            sunaudiodev                        
To find the necessary bits, look in setup.py in detect_modules() for the module's name.


Failed to build these modules:
_tkinter                                              

running build_scripts
cryhelyxx@ada:~/下载/Python-2.7.6$ 
把下面这个常用库都安装上:
sudo apt-get install autoconf curl libmysqld-dev libaio-dev libjpeg62-dev libpng12-dev libfreetype6-dev libssl-dev zlib1g-dev
sudo apt-get install  libbz2-dev libgdbm-dev
sudo apt-get install sqlite3 libsqlite3-tcl libsqlite3-dev
sudo apt-get install  python-bsddb3
 
 
6. 安装好后, 输入:
python
再输入:
import Tkinter

7. OK, 没消息就是好消息, Enjoy it!!!

                
Traceback (most recent call last): File "D:\桌面\金融数据课\9.22 Python数据可视化代码及数据\seaborn_demo.py", line 16, in <module> plt.figure(figsize=(10,6),dpi=200) # 新建画布 File "D:\Anaconda3\envs\con\lib\site-packages\matplotlib\_api\deprecation.py", line 454, in wrapper return func(*args, **kwargs) File "D:\Anaconda3\envs\con\lib\site-packages\matplotlib\pyplot.py", line 840, in figure manager = new_figure_manager( File "D:\Anaconda3\envs\con\lib\site-packages\matplotlib\pyplot.py", line 384, in new_figure_manager return _get_backend_mod().new_figure_manager(*args, **kwargs) File "D:\Anaconda3\envs\con\lib\site-packages\matplotlib\backend_bases.py", line 3574, in new_figure_manager return cls.new_figure_manager_given_figure(num, fig) File "D:\Anaconda3\envs\con\lib\site-packages\matplotlib\backend_bases.py", line 3579, in new_figure_manager_given_figure return cls.FigureCanvas.new_manager(figure, num) File "D:\Anaconda3\envs\con\lib\site-packages\matplotlib\backend_bases.py", line 1742, in new_manager return cls.manager_class.create_with_canvas(cls, figure, num) File "D:\Anaconda3\envs\con\lib\site-packages\matplotlib\backends\_backend_tk.py", line 483, in create_with_canvas window = tk.Tk(className="matplotlib") File "D:\Anaconda3\envs\con\lib\tkinter\__init__.py", line 2270, in __init__ self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: Can't find a usable tk.tcl in the following directories: D:/Anaconda3/envs/con/tcl/tcl8.6/tk8.6 con/tcl/tk8.6 con/lib/tk8.6 con/lib/tk8.6 con/lib/tk8.6 con/library This probably means that tk wasn't installed properly.
最新发布
09-24
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值