Python 如果我的脚本包含从.py模块导入的内容,则Pyinstaller不会生成.exe文件

Python 如果我的脚本包含从.py模块导入的内容,则Pyinstaller不会生成.exe文件,python,pyinstaller,executable,Python,Pyinstaller,Executable,我试图使用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 imp

我试图使用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

我尝试过使用pyinstaller的--hidden import和其他选项,但似乎没有任何效果,其他人是否也遇到过类似的问题

我正在使用Windows、Python3.8、pyinstaller3.6和Spyder3上开发,如果这与此相关的话


提前感谢所有愿意回答的人

多亏了所有试图回答的人,我终于解决了这个问题,比我想象的要复杂得多,因为问题不在我的代码或模块中,而在我的环境配置中。我基本上忘记了激活基地环境。显然,只要我在Spyder中运行它,它就工作得很好,但在尝试使用命令提示符时,它就搞糟了。
修复此问题后(感谢中的答案),我成功创建了一个运行正常的.exe文件(尽管仍在努力上载图像)。

您使用什么选项调用pyinstaller?它只是没有给出一个.exe还是有错误?如果显示错误,请将其添加到帖子中。没有给出错误,它不会创建任何可执行文件,也不会创建任何pycache文件夹。我尝试了几个选项,例如:
C:\Users\Marco\Anaconda3\Scripts\pyinstaller--hidden import=PIL--hidden import=matplotlib-F H2.py
C:\Users\Marco\Anaconda3\Scripts\pyinstaller--onefile H2.py
等还试图先生成.spec,修改它,然后对.spec文件使用pyinstaller命令,仍然没有不同的结果:唯一似乎有效的事情是对上述进口产品进行评论。在这种情况下,它可以与任何选项配合使用。
.pyi
是一个python存根;没有密码。它们实际上指向一个
.py
文件。