在使用 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/env
和python3
作为参数。或者您的特定 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
,然后仅导入 filedialog
。 from
的重点是避免导入整个库。
【讨论】:
以上是关于在使用 Python 3 的 Mac 上没有名为“_tkinter”的模块的主要内容,如果未能解决你的问题,请参考以下文章
Mac Os 10.11 上没有名为 QtMultimedia 的模块
设置上的wxpython错误 - ModuleNotFound:没有名为'wx'的模块
ImportError:Mac OS 上没有名为 pymysql 的模块