在使用 Python 3 的 Mac 上没有名为“_tkinter”的模块

Posted

技术标签:

【中文标题】在使用 Python 3 的 Mac 上没有名为“_tkinter”的模块【英文标题】:No module named '_tkinter' on Mac using Python 3 【发布时间】:2020-01-19 03:46:55 【问题描述】:

我正在尝试使用 Tkinter 作为 GUI 将我的脚本捆绑到一个 .app 中,而进行捆绑的包装器是 Platypus。

我在运行应用程序时遇到此错误。

Traceback (most recent call last):
File "/Users/samb/Desktop/Beta1.app/Contents/Resources/script", line 4, in <module>
  import tkinter
File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/P...ework/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'

我在这台机器上运行 Python 3.7.4,我的脚本使用:

import tkinter
from tkinter import filedialog

这应该使它兼容。该脚本在我使用终端运行时有效,但在我运行应用程序时无效。

我在捆绑应用程序中指定它也应该使用 python3...

不确定我在这里做错了什么?

【问题讨论】:

我才刚刚开始使用 tkinter,但我认为它是 Python 附带的?编辑:当我输入 python3 和脚本的文件路径时,它似乎在终端中运行 - 这是否确认 tkinter 已正确安装在 python3 中? 你不必使用import _tkinter,阅读Import _tkinter or tkinter? 我的脚本没有使用import _tkinter,也许包装器是? 【参考方案1】:

几个问题:/usr/bin/python3 没有文件。使用/usr/local/bin/python3/usr/bin/envpython3 作为参数。或者您的特定 python 环境需要的任何内容。

由于某种原因,python 正在 Xcode 中寻找库,这很不寻常。我已经安装了 python3 并且没有 python 在

/Applications/Xcode.app/Contents/Developer/Library/Frameworks/

在我的安装中,有效的文件路径是:

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py

(即在 /Library 中,而不是在 Xcode 中。)由于脚本在终端中运行,因此 Platypus 的配置可能在某种程度上是错误的。

作为一个快速破解,我想您可以将 Python.framework 从 /Library/Frameworks 符号链接到 Xcode 中的 Frameworks 文件夹。

如 cmets 中所述,您无需包含第一行 import。目前,您正在导入所有 tkinter,然后仅导入 filedialogfrom 的重点是避免导入整个库。

【讨论】:

以上是关于在使用 Python 3 的 Mac 上没有名为“_tkinter”的模块的主要内容,如果未能解决你的问题,请参考以下文章

Spyder IDE:Mac 上没有名为 pip 的模块

Mac Os 10.11 上没有名为 QtMultimedia 的模块

设置上的wxpython错误 - ModuleNotFound:没有名为'wx'的模块

ImportError:Mac OS 上没有名为 pymysql 的模块

ModuleNotFoundError:python 3.6.7 上没有名为“google”的模块

使用Homebrew在Mac上安装带有Python 3的GDB