python 在Mac上运行Tkinter

kt06eoxx  于 2023-06-04  发布在  Python
关注(0)|答案(3)|浏览(210)

我是一个绝对的新手。我正在尝试为我的学校项目制作Python GUI,所以我决定使用Tkinter。当我尝试导入Tkinter时,它会抛出以下消息:

>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/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'

我试着在网上找到一个解决方案,但我想不出来(大多数时候我不明白)。
我在www.example.com上读到一些目录问题setup.py,但我不知道如何修复它。我的python3.7文件夹中有tkinter文件夹。
我不太懂these steps that I found
如果它失败了,显示“No module named _tkinter”,那么你的Python配置需要修改以包含这个模块(它是一个用C实现的扩展模块)。请勿****编辑模块/设置(已过期)。您可能需要安装Tcl和Tk(使用RPM时,还需要安装-devel RPM)和/或编辑setup.py脚本以指向安装Tcl/Tk的正确位置。如果您在默认位置安装Tcl/Tk,只需重新运行“make”就可以构建_tkinter扩展。
我使用的是Mac OS和Visual Studio Code。

xzv2uavs

xzv2uavs1#

要检查你的python版本,在terminal上运行以下命令:

$ python --version

检查你的机器使用的是什么Python。运行:

$ which python

如果它使用的是来自Homebrew的Python,那么它可能使用的是Python 2。如果你手动安装了python 3,只需手动安装 tKinter 即可。

$ brew install python-tk

要手动运行python 2,请在终端上运行:

$ python <FILENAME>

如果是python 3,运行:

$ python3 <FILENAME>
r1wp621o

r1wp621o2#

https://stackoverflow.com/a/9883299/4678635将帮助您。
总之,你必须为你的计算机位系统重新安装Python。
而下面的代码策略对你也是有帮助的。

try:    
    from Tkinter import * # for Python2
except ImportError:
    from tkinter import * # for Python3
qncylg1j

qncylg1j3#

tkinterpyenv一起使用可能会因为缺少依赖关系而变得棘手。
下面的两个步骤应该可以帮助您修复tkinterpyenv问题。

第一步:安装必要的系统包

tkinterpyenv一起使用可能会因为缺少依赖关系而变得棘手。
首先,让我们确保已经为tkinter安装了必要的系统包。
在macOS上,您可以使用Homebrew:

brew install tcl-tk

第二步:链接正确的Tcl/Tk版本

接下来,确保在安装Python时链接了正确的Tcl/Tk版本。pyenv在您的环境中构建Python,但如果您没有所需的依赖项,如Tk/Tcl库,它将在没有它们的情况下构建Python。
如果你想使用的Python版本已经安装在你的系统上,你需要在继续之前卸载它。例如:

pyenv uninstall 3.11.3

使用pyenv安装新的Python版本时,请使用以下命令:
对于macOS,使用brew安装tcl-tk后:

brew install openssl readline sqlite3 xz zlib

env LDFLAGS="-L$(brew --prefix openssl@1.1)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix sqlite3)/lib -L$(brew --prefix xz)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix tcl-tk)/lib" \
CPPFLAGS="-I$(brew --prefix openssl@1.1)/include -I$(brew --prefix readline)/include -I$(brew --prefix sqlite3)/include -I$(brew --prefix xz)/include -I$(brew --prefix zlib)/include -I$(brew --prefix tcl-tk)/include" \
PKG_CONFIG_PATH="$(brew --prefix openssl@1.1)/lib/pkgconfig:$(brew --prefix readline)/lib/pkgconfig:$(brew --prefix sqlite3)/lib/pkgconfig:$(brew --prefix xz)/lib/pkgconfig:$(brew --prefix zlib)/lib/pkgconfig:$(brew --prefix tcl-tk)/lib/pkgconfig" \
pyenv install <version>

<version>替换为要安装的Python版本。之后,您应该能够在pyenv Python环境中导入tkinter
请注意,我无法让tkinter在Python 3.11.0上与pyenv一起工作,但它在3.11.2上工作得很好。

相关问题