我想要执行一个可执行文件,但是每次运行.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
,这会在prog.exe
文件夹中创建dist
。当我运行此代码时,我有
ImportError: No module named 'tkinter'
Failed to execute script prog
但是我的程序不使用这个模块......你对我有什么建议或帮助吗?
操作系统:Windows64
Python: 3.5 for Win64
注意:我今天已经unistall / install python 3次(在阅读本网站和国外的文档后)。
注2:我仅将Python用于科学问题。我不是计算机科学家,所以在解释计算机时要善待我:S
答案 0 :(得分:2)
最终为pyinstaller -F --hidden-import=tkinter --hidden-import=tkinter.filedialog prog.py
工作非常感谢!!!
答案 1 :(得分:1)
你应该使用隐藏的导入
pyinstaller eulersolver.py --hidden-import=tkinter -y
答案 2 :(得分:0)
问题是pyinstaller没有看到二级导入。因此,如果您导入模块 A ,pyinstaller会看到这一点。但是不会看到在 A 中导入的任何其他模块。
您无需更改python脚本中的任何内容。您可以直接将缺少的导入添加到规范文件(在您的情况下为 prog.spec )。 只需更改以下行:
hiddenimports=[],
到
hiddenimports=["tkinter"],
之后运行pyinstaller prog.spec
以创建 prog.exe 。