mac上在pyenv安装带tcl/tk模块的python

pyenv安装python3.11, 默认是不带tkinter模块的, 于是尝试指定tkinter给安装过程.
遇到的坑是brew默认安装的tcl-tk是9.0, 带命令行安装会报错, 而使用tcl-tk@8则可以

失败的命令行

TCLTK_PREFIX=$(brew --prefix tcl-tk) \              
PATH="$TCLTK_PREFIX/bin:$PATH" \
LDFLAGS="-L$TCLTK_PREFIX/lib" \
CPPFLAGS="-I$TCLTK_PREFIX/include" \
PKG_CONFIG_PATH="$TCLTK_PREFIX/lib/pkgconfig" \
TCL_CONFIG="$TCLTK_PREFIX/lib/tclConfig.sh" \
TK_CONFIG="$TCLTK_PREFIX/lib/tkConfig.sh" \
PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I$TCLTK_PREFIX/include' --with-tcltk-libs='-L$TCLTK_PREFIX/lib -ltcl9.0 -ltcl9tk9.0'" \
pyenv install 3.11.14

成功的命令行

brew install tcl-tk@8

TCLTK_PREFIX=$(brew --prefix tcl-tk@8) \
PATH="$TCLTK_PREFIX/bin:$PATH" \
LDFLAGS="-L$TCLTK_PREFIX/lib" \
CPPFLAGS="-I$TCLTK_PREFIX/include" \
PKG_CONFIG_PATH="$TCLTK_PREFIX/lib/pkgconfig" \
TCL_CONFIG="$TCLTK_PREFIX/lib/tclConfig.sh" \
TK_CONFIG="$TCLTK_PREFIX/lib/tkConfig.sh" \
PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I$TCLTK_PREFIX/include' --with-tcltk-libs='-L$TCLTK_PREFIX/lib -ltcl8.6 -ltk8.6'" \
pyenv install 3.11.14

上面是安装python3.11的情况, 然而再次尝试安装python3.10, 会发现上面这种方法又不行了

Traceback (most recent call last):
  File "/Users/aaa/.pyenv/versions/3.10.19/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/Users/aaa/.pyenv/versions/3.10.19/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/Users/aaa/.pyenv/versions/3.10.19/lib/python3.10/tkinter/__main__.py", line 7, in <module>
    main()
  File "/Users/aaa/.pyenv/versions/3.10.19/lib/python3.10/tkinter/__init__.py", line 4596, in _test
    root = Tk()
  File "/Users/aaa/.pyenv/versions/3.10.19/lib/python3.10/tkinter/__init__.py", line 2301, in __init__
    self._loadtk()
  File "/Users/aaa/.pyenv/versions/3.10.19/lib/python3.10/tkinter/__init__.py", line 2317, in _loadtk
    raise RuntimeError("tk.h version (%s) doesn't match libtk.a version (%s)"
RuntimeError: tk.h version (8.5) doesn't match libtk.a version (8.6)

反而直接pyenv install 3.10, 就直接带上tkinter
莫名其妙

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容