Open hyrulelinks opened 2 hours ago
测试了最新的项目源码,发现一个很别扭的问题
如果是Python 3.12大版本早期,通过brew install python@3.12和brew install python-tk@3.12,自带的tcl和tk是8.6的,项目可以正常运行
但现在Python 3.12的最后一个版本是3.12.7,大版本已经到3.13.0,现在再用brew install python@3.12和brew install python-tk@3.12安装python 3.12.7(强制3.12的最后一个小版本),或者brew install python、brew install python-tk安装python 3.13.0,自带的tcl和tk是9.0的,最后一个8.6小版本是8.6.14,之后直接升到9.0大版本,中间没有8.7、8.8、8.9只写过渡版本,又无法通过brew install的方式安装早期的python 3.12.0等自带tcl、tk为8.6的版本,因此用项目中的shell脚本自动构建的mac应用是绝无可能正常运行的
解决办法两个,一是把项目中的tkinter相关代码更新到兼容9.0版本,二是降级到python 3.11(3.10不行,因为tcl和tk是8.5的,也无法运行项目),但mac上降级到3.11也是个很麻烦的问题,用brew install python@3.11和python-tk@3.11也会自动使用tcl-tk 9.0的版本,需要手动设置环境变量强制使用tcl-tk@8这个库,过程有点复杂,而且对mac整个环境变量影响较大
通过比较复杂的操作,最终将最新代码重新打包mac应用,可以再m4 mac mini上正常运行
希望项目作者能更新项目以兼容最新的tkinter(tcl、tk 9.0),感谢! @TransparentLC
这个问题的发生,我觉得是3.12大版本自己内部的问题,早期小版本和后期小版本之间竟然是不兼容的,不光是tkinter的前后期不兼容,其他标准库也有一些变动,3.12我认为是个很失败的大版本了,不知道3.13能不能好一点
或者不用标准库的tkinter,改用其他第三方库来实现等效替换,摆脱对tkinter的依赖,第三方库的版本控制就比tkinter方便多了
测试了最新的项目源码,发现一个很别扭的问题
如果是Python 3.12大版本早期,通过brew install python@3.12和brew install python-tk@3.12,自带的tcl和tk是8.6的,项目可以正常运行
但现在Python 3.12的最后一个版本是3.12.7,大版本已经到3.13.0,现在再用brew install python@3.12和brew install python-tk@3.12安装python 3.12.7(强制3.12的最后一个小版本),或者brew install python、brew install python-tk安装python 3.13.0,自带的tcl和tk是9.0的,最后一个8.6小版本是8.6.14,之后直接升到9.0大版本,中间没有8.7、8.8、8.9只写过渡版本,又无法通过brew install的方式安装早期的python 3.12.0等自带tcl、tk为8.6的版本,因此用项目中的shell脚本自动构建的mac应用是绝无可能正常运行的
解决办法两个,一是把项目中的tkinter相关代码更新到兼容9.0版本,二是降级到python 3.11(3.10不行,因为tcl和tk是8.5的,也无法运行项目),但mac上降级到3.11也是个很麻烦的问题,用brew install python@3.11和python-tk@3.11也会自动使用tcl-tk 9.0的版本,需要手动设置环境变量强制使用tcl-tk@8这个库,过程有点复杂,而且对mac整个环境变量影响较大
通过比较复杂的操作,最终将最新代码重新打包mac应用,可以再m4 mac mini上正常运行
希望项目作者能更新项目以兼容最新的tkinter(tcl、tk 9.0),感谢! @TransparentLC