我正在尝试在 MacOS Ventura 上从源代码构建 Python 3.11。该构建缺少我需要的
_tkinter
模块。
我已经从源代码编译了自己的 Tcl/Tk 8.6 版本,并启用了 Aqua。分别安装在
/Library/Frameworks/Tcl.framework
和Tk.framework
。
我已经设置了
TCLTK_CFLAGS
和 TCLTK_LIBS
环境变量(在配置输出中显示如下)。
当我运行配置脚本时,结果缺少
_tkinter
支持。 config.log
显示以下内容
configure:13714: gcc -o conftest -I/Library/Frameworks/Tcl.framework/Headers/ -I/Library/Frameworks/Tcl.framework/Headers/ conftest.c -L/Library/Frameworks/Tcl.framework/ -ltclstub8.6 -L/Library/Frameworks/Tk.framework/ -ltkstub8.6 >&5
In file included from conftest.c:120:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/tk.h:31:3: error: Tk 8.5 must be compiled with tcl.h from Tcl 8.5
# error Tk 8.5 must be compiled with tcl.h from Tcl 8.5
因此,由于某种原因,配置脚本的问题是查看 Xcode CLT,而不是
/Library/Frameworks
中的新源构建。
有没有办法让配置脚本直接查看我的 TclTk 构建?
我尝试从源代码构建和安装 Tcl 和 Tk 8.6,并期望 Python 的配置脚本通过
TCLTK_CFLAGS
和 TCLTK_LIBS
环境变量使用它们。
问题是我设置了
TCLTK_CFLAGS='-I/Library/Frameworks/Tcl.framework/Headers/ -I/Library/Frameworks/Tcl.framework/Headers/'
我没有包含 Tk 包含 例如
TCLTK_CFLAGS='-I/Library/Frameworks/Tcl.framework/Headers/ -I/Library/Frameworks/Tk.framework/Headers/'
。
菜鸟错误。设置完
TCLTK_LIBS='-L/Library/Frameworks/Tcl.framework/ -lTcl -L/Library/Frameworks/Tk.framework/ -lTk'
后,此配置步骤就完成了。