在CentOS上安装tktinter (无权限)

在Unix上安装tkTinter,有时候可能会因为python配置、无权限等问题而安装失败。找了很久都没有找到现成的解决方法。
本文记录自己探索的无root权限的tktinter安装过程,希望给大家启发。

问题描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  import matplotlib.pyplot as plt
File "/home/caojl/lib/python3.6/site-packages/matplotlib/pyplot.py", line 115, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/home/caojl/lib/python3.6/site-packages/matplotlib/backends/__init__.py", line 62, in pylab_setup
[backend_name], 0)
File "/home/caojl/lib/python3.6/site-packages/matplotlib/backends/backend_tkagg.py", line 4, in <module>
from . import tkagg # Paint image to Tk photo blitter extension.
File "/home/caojl/lib/python3.6/site-packages/matplotlib/backends/tkagg.py", line 5, in <module>
from six.moves import tkinter as Tk
File "/home/caojl/lib/python3.6/site-packages/six.py", line 92, in __get__
result = self._resolve()
File "/home/caojl/lib/python3.6/site-packages/six.py", line 115, in _resolve
return _import_module(self.mod)
File "/home/caojl/lib/python3.6/site-packages/six.py", line 82, in _import_module
__import__(name)
File "/home/caojl/lib/python3.6/tkinter/__init__.py", line 36, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

简单来说,就是当import matplotlib.pyplot 时,所依托的_tkinter模块引入失败。应该是配置的问题。但是网上的解答都是针对有root权限的解答,在服务器上无root权限的小伙伴就非常尴尬了。。

步骤

1. 下载源代码

下载tcl

1
wget https://prdownloads.sourceforge.net/tcl/tcl868-src.zip

下载tk

1
wget https://prdownloads.sourceforge.net/tcl/tk868-src.zip

更多版本,请跳转至这个链接

2. 解压

1
2
unzip tk868-src.zip
unzip tcl868-src.zip

3. 配置tcl

1
2
3
4
5
6
7
cd tcl8.6.8/unix/

./configure --prefix=/home/bella --exec-prefix=/home/bella

make

make install

记得把路径/home/bella 换成自己的用户名(可以直接保存在根目录下,但是因为笔者是安装在服务器上,所以选择的路径是在用户名下)

4. 配置tk

1
2
3
4
5
6
7
cd tk

./configure --prefix=/home/caojl --exec-prefix=/home/caojl --with-tcl=/home/caojl/tcl8.6.8/unix

make

make install

5. 重新build python

Then re-run python setup.py build and python setup.py install in your python installation directory

这一步没有跑出来。。倒在这一步上了。。

写在最后

到目前为止还没有找出能够成功运行的方法。如果有root权限当然就比较方便,如果没有的话可能得考虑重装python(尝试过,失败),重新配置tk指向(没找到)等方法。欢迎留言,留下你的成功经验,感谢🙏

参考链接:

https://stackoverflow.com/questions/4783810/install-tkinter-for-python/10015546#10015546 (本文的方法)

https://stackoverflow.com/questions/19163983/install-tcl-tk-without-root (修改config prefix的方法)

https://stackoverflow.com/questions/16902038/install-tkinter-without-root-access (easy-install 的方法 )

http://www.qttc.net/201304306.html (Linux升级Python提示Tkinter模块找不到解决,感觉问题描述挺像的,但是没有成功)