ImportError:pyInstaller 后没有名为“tkinter”的模块
Posted
技术标签:
【中文标题】ImportError:pyInstaller 后没有名为“tkinter”的模块【英文标题】:ImportError: No module named 'tkinter' after pyInstaller 【发布时间】:2016-12-19 18:39:05 【问题描述】:我想做一个可执行文件,但每次运行 .exe 时它都会写入ImportError: No module named 'tkinter'
,而我在 Stackowerflow 上阅读的所有内容都对我没有帮助!
我的 python 程序很简单(ODE 求解器)并且只请求:
from math import*
from pylab import*
import numpy as np
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
我将prog.py
的副本粘贴到pyInstaller 所在的C:\Python\Scripts
文件夹中。我计算命令行pyinstaller -F eulersolver.py
,这会在dist
文件夹中创建一个prog.exe
。当我运行这段代码时,我有
ImportError: No module named 'tkinter'
Failed to execute script prog
但是我的程序没有用到这个模块……你有什么建议或者帮助吗?
操作系统: Windows64
Python: 3.5 for Win64
注意:我今天已经卸载/安装了 3 次 python(在阅读了本网站和国外的文档之后)。
注意 2: 我仅将 Python 用于科学问题。我不是计算机科学家,所以在解释计算机的东西时请善待我:S
【问题讨论】:
EDIT(因为我无法编辑自己的帖子-_-):命令行实际上是pyinstaller -F prog.py
matplotlib
使用tkinter
显示带有绘图的窗口。
尝试import tkinter
也许它也会分配 tkinter 模块。或者在运行pyinstaller
之前阅读如何设置配置。 tkinter
使用外部 dll
和语言 tcl
及其 gui tk
所以也许你必须手动添加有关 tcl.dll
和 tk.dll
的配置信息(我不使用 Windows,所以我不知道如果是tcl.dll
和tk.dll
)
做到了,但导入 tkinter 时结果相同 :(
PyInstaller - no module named的可能重复
【参考方案1】:
您应该使用隐藏导入pyinstaller eulersolver.py --hidden-import=tkinter -y
【讨论】:
【参考方案2】:终于为pyinstaller -F --hidden-import=tkinter --hidden-import=tkinter.filedialog prog.py
工作了,非常感谢!!!
【讨论】:
【参考方案3】:问题是 pyinstaller 不会看到 二级导入。因此,如果您导入模块 A,pyinstaller 会看到这一点。但是在 A 中导入的任何附加模块都不会被看到。
无需更改您的 python 脚本中的任何内容。您可以直接将缺少的导入添加到 spec 文件(在您的情况下为 prog.spec)。 只需更改以下行:
hiddenimports=[],
到
hiddenimports=["tkinter"],
然后运行pyinstaller prog.spec
以创建prog.exe。
【讨论】:
以上是关于ImportError:pyInstaller 后没有名为“tkinter”的模块的主要内容,如果未能解决你的问题,请参考以下文章
ImportError: No module named 'xlsxwriter' - 当我使用 Pyinstaller 打包程序时
Pyinstaller 不工作 - ImportError: Module 'pywintypes' is not in freeze sys.path
ImportError: numpy.core.multiarray failed to import [cv2, matplotlib, PyTorch, pyinstaller ]
ImportError: numpy.core.multiarray failed to import [cv2, matplotlib, PyTorch, pyinstaller ]
Pyinstaller ImportError:DLL加载失败:找不到指定的模块
PyInstaller 与 Python:3.10.0b4 - ImportError:没有名为 _bootlocale 的模块