重整工作机环境,使用pyenv安装Python 3.11,总是报告一个错误:
Traceback (most recent call last):
File “”, line 1, in
File “/Users/bohr/.pyenv/versions/3.11.13/lib/python3.11/tkinter/init.py”, line 38, in
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?
我以前遇到过,就使用brew配置了相关环境,安装重试,然而故障依旧。虽然使用影响不大,但是受不了报错。
使用AI,给出各种建议方案,包括配置路径,设置环境变量什么的,全部无效!
嗯,AI实际上也是不能全部替代搜索引擎的。我通过搜索找到了实际的答案:
在macOS上,通过brew安装 tcl-tk 的时候,因为发布版本的更新,默认会安装 tcl-tk 9,而不是8。但是Python 3.11.x 和某些上面的版本,与tcl-tk版本9不兼容,无法编译通过,最后输出的错误就是无法导入。所以,正确的办法不是调整什么环境变量,实际上系统自己做的就很好了。而是安装正确的tcl-tk版本。
brew uninstall tcl-tk
brew install tcl-tk@8
pyenv uninstall 3.11.13
env PYTHON_CONFIGURE_OPTS=”–enable-optimizations” pyenv install 3.11.13
这样正常编译就可以了。
‘env PYTHON_CONFIGURE_OPTS=”–enable-optimizations”‘ – 这行是开高性能模式,通过所谓”PGO“编译优化,Python 执行速度提升10%以上,但是编译时间长数倍,一般还是值得的。
如果你在 stackoverflow 上也找到了回答,那个答案是我写的。