当你在 PyCharm 中创建项目时,如果勾选了 “New environment using Virtualenv”,PyCharm 会自动创建一个 venv 虚拟环境,并基于系统 Python 创建一个隔离的副本。
但 在 Windows 上,某些 Python 安装方式在创建虚拟环境时,不会自动复制 Tcl/Tk 相关文件( tcl8.6 和 tk8.6 ),导致虚拟环境中的 Python 无法使用 Tkinter。
即使系统 Python 本身是正常的,但由于开发工具的虚拟环境中。
而你在 CMD 中直接运行 python 项目名称.py,用的是系统全局的 Python,它包含完整的 Tk 支持,所以能正常启动。
为了解决这种问题,我们可以手动把系统 Python 的 Tcl/Tk 文件复制到虚拟环境中。
步骤如下:
- 找到系统 Python 的 Tcl/Tk 目录
通常位于:
C:\Users\<用户名>\AppData\Local\Programs\Python\Python311\tcl\
里面应该有 tcl8.6 和 tk8.6 两个文件夹。
- 找到你的 venv 中的 Lib 目录
通常是:
你的项目路径\venv\Lib\
- 把
tcl8.6 和 tk8.6 文件夹复制到 venv\Lib\ 下
最终路径应为:
项目\venv\Lib\tcl8.6\
项目\venv\Lib\tk8.6\
