最近为了写一个GUI打算用tkinter,结果切换到pyenv的虚拟环境报错:
import tkinter as tk
File "/Users/simonliu/.pyenv/versions/3.8.2/lib/python3.8/tkinter/__init__.py", line 36, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'
然而切换到系统的默认python3下是正常的:
网上有很多解决方案,我这里有个比较简单的:
# 安装tcl-tk
brew install tcl-tk
# 安装一个新的python版本
v=3.8.10;wget https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v
# 以刚才安装的python版本创建一个新的名为`sh2`的环境
pyenv virtualenv 3.8.10 sh2
# 激活虚拟环境
pyenv activate sh2
# 测试tkinter
python -m tkinter -c 'tkinter._test()'
如果成功,会弹出如下窗口:
如果是Ubuntu,应该这样:
sudo apt-get install python3-tk
其他参考: