我正在try 在CentOS-7下安装(通过pyenv)Python-3.11.4.它可以安装,但没有安装图形用户界面.我收到以下错误消息:

Installing Python-3.11.4...
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/.../pyenv/versions/3.11.4/lib/python3.11/tkinter/__init__.py", line 38, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
    ^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named '_tkinter'
WARNING: The Python tkinter extension was not compiled and GUI subsystem has been detected. Missing the Tk toolkit?
Installed Python-3.11.4 to /.../pyenv/versions/3.11.4

而在同一台计算机上成功安装了Python-3.9.16.根据Python 3.11 Build Changes的要求,要求安装"Tcl/Tk version 8.5.12 or newer".我有过

$ rpm -q tk tk-devel
tk-8.5.13-6.el7.x86_64
tk-devel-8.5.13-6.el7.x86_64

同一页上显示的是"Tcl/Tk, and uuid flags are detected by pkg-config (when available). tkinter now requires a pkg-config command to detect development settings for Tcl/Tk headers and libraries.",它也已安装:

$ rpm -q pkgconfig
pkgconfig-0.27.1-4.el7.x86_64

你能帮我了解一下安装_tkinter失败的可能原因吗?

非常感谢您的帮助!

推荐答案

要在CentOS-7下成功构建Python-3.11.4,需要设置以下环境变量:

export CPPFLAGS="$(pkg-config --cflags openssl11) -I/usr/include"
export LDFLAGS="$(pkg-config --libs openssl11) -L/usr/lib64 -ltcl8.5 -ltk8.5"

其中_ssl模块需要openssl11个部件,_tkinter模块需要其余部件.

使用Tk/TCL构建Python所需的部分可在

  • /usr/lib64/tclConfig.sh
  • /usr/lib64/tkConfig.sh

要判断是否成功构建了tkinter,请执行以下操作:

/path/to/python/3.11.4/bin/python3 -m tkinter

Python相关问答推荐

如何在Python中使用时区夏令时获取任何给定本地时间的纪元值?

Pydantic 2.7.0模型接受字符串日期时间或无

使用FASTCGI在IIS上运行Django频道

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

C#使用程序从Python中执行Exec文件

Julia CSV for Python中的等效性Pandas index_col参数

Python中绕y轴曲线的旋转

try 将一行连接到Tensorflow中的矩阵

优化器的运行顺序影响PyTorch中的预测

计算每个IP的平均值

什么是最好的方法来切割一个相框到一个面具的第一个实例?

Python逻辑操作作为Pandas中的条件

用砂箱开发Web统计分析

如何杀死一个进程,我的Python可执行文件以sudo启动?

Flask Jinja2如果语句总是计算为false&

Polars Group by描述扩展

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?

为什么在Python中00是一个有效的整数?

python3中np. divide(x,y)和x/y有什么区别?'

仅取消堆叠最后三列