python - 您如何在 wsl 上的 python3.8 中修复 tkinter?

标签 python ubuntu tkinter windows-subsystem-for-linux

我正在尝试学习基于 GUI 的 python,因此我使用的是 Tkinter 库。我的操作系统是 windows,但我已经安装了 Ubuntu wsl 作为我的默认终端,并使用 wsl vscode 作为我的默认文本编辑器。
我只是使用此示例代码创建一个基本窗口来检查它是否有效:

from Tkinter import *
def onclick():
pass
root = Tk()
text = Text(root)
text.insert(INSERT, "Hello.....")
text.insert(END, "Bye Bye.....")
text.pack()
text.tag_add("here", "1.0", "1.4")
text.tag_add("start", "1.8", "1.13")
text.tag_config("here", background="yellow", foreground="blue")
text.tag_config("start", background="black", foreground="green")
root.mainloop()
原来它不适用于python3.8。
Terminal error message
我查找了多个资源和论坛,但找不到任何合适的解决方案。以下是我提到的几个链接:
https://realpython.com/python-gui-tkinter/ https://tkdocs.com/tutorial/install.html https://askubuntu.com/questions/1224230/how-to-install-tkinter-for-python-3-8 .
我发现的一个解决方法是安装了使用 python3.7 并使用 windows 终端的 anaconda(使用 pycharm 而不是 vscode)。看起来它运行正常。
GUI with python3.7
问题是.. 我喜欢 wsl 和 vscode 比 windows 命令行好得多,我想恢复它。有什么解决办法吗?我真的不想在这条路上胡闹太多,因为我以前有过糟糕的经历(但如果它能够解决我的问题,我愿意再做一次)。谢谢你听我说完。

最佳答案

问题不在于 Python,而在于 WSL。您无法在 WSL 中轻松运行任何图形化的东西。 (微软计划添加该功能,但尚未准备好。有第三方解决方案,但设置起来并不容易。)
最简单的解决方案是使用 Windows 安装的 Python 3.8 来运行您的 tkinter 应用程序。您仍然可以从 Ubuntu WSL 内部调用它,就像任何 Windows 可执行文件一样。

关于python - 您如何在 wsl 上的 python3.8 中修复 tkinter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62890536/

相关文章:

python - Entry().get() 在 Python 3.4 中不起作用

python - 如何在 Tkinter 中将 Label 中的数字排列成网格?

python - GEE Python API : Export image to Google Drive fails

Ubuntu 自动从 Github 仓库中拉取

linux - 如何在返回代码 0 时运行 bash 脚本?

ubuntu - 让 THEANO 与 GPU ubuntu 14.04 一起工作的问题

python - 在 Python 中使用 lambda 的 tkinter 按钮命令

python - 如何使用 moviepy 在 Python 中获取视频的音量?

python - 为 Mac OS X 10.6.8 安装 Pygame

python - Snakemake - 尝试使用 global_wildcards 时出现问题(TypeError : expected str, 获取列表)