这个问题之前认为不必要就忽略了, 今天重新试了下.
问题
之前系统上用pyenv装的python 2.7.10, tk是mac默认版本, 有中文问题;
解决
问题依然存在;
pyenv install 2.7.10 重装之后问题解决.
原因
这一节:
How Python Chooses Which Tk Library To Use
The Tcl/Tk major version is determined when the installer is created and cannot be overridden.
In either case, the dynamically linking occurs when tkinter (Python 3) or Tkinter (Python 2) is first imported (specifically, the internal _tkinter C extension module).
"first imported" 说的正是安装python解释器的时候,其实是某些情况静态链接了Tk/tcl库.
安装时的查找路径:
/Library/Frameworks 自己安装的路径
/System/Library/Frameworks 苹果自带的路径
总结
也就是说,如果要更换Tk模块,既要下载与OS适配正确的版本, 还要重装下解释器.
还有没有其它的方式, 一起讨论, 请拍砖~