我正在尝试使用pyinstaller从.py脚本生成一个.exe文件,但经过几次尝试,我才意识到它仅在排除某些导入后才起作用:对于文件扩展名为.pyi的库,它可以正常工作,而如果我从扩展名为.py的文件中导入模块,则不会生成.exe文件。 例如:
#### These are fine because .pyi
import tkinter as tk
from tkinter import messagebox
from threading import Thread
import decimal as dec
import math
#### These don't let Pyinstaller generate an .exe --> Most likely because these are .py files, as opposed to .pyi!!
# from PIL import ImageTk, Image
# import numpy as np
# import matplotlib.pyplot as plt
# from mpl_toolkits.mplot3d import axes3d
# from matplotlib import style
# from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
这样,在第二组被注释掉的情况下,我使pyinstaller正常工作,但是很明显,应用程序在运行时会返回错误。但是,如果我取消注释,pyinstaller根本不会生成任何.exe。
我尝试使用--hidden-import和pyinstaller的其他选项,但似乎无济于事,其他人是否遇到过类似的问题?
如果与此相关,我正在使用Windows,Python3.8,pyinstaller3.6并在Spyder3上进行开发。
在此先感谢您的回答!
答案 0 :(得分:1)
感谢所有尝试回答这些问题的人,我终于把这件事整理了一下,这比我想的要棘手得多,因为问题不在我的代码或模块中,而是在我的环境配置中。我基本上忘记了激活基本环境。显然,只要我在Spyder中运行它,它就可以正常工作,但是在尝试使用命令提示符时却弄乱了它。 解决此问题后(感谢this thread中的答案),我设法创建了一个运行良好的.exe文件(尽管仍在上传图像方面遇到困难)。