Python脚本在Spyder中运行,但在打包为Pyinstaller.exe时崩溃(关闭时没有错误消息)
我正在尝试使用Pyinstaller将Python脚本打包为.exe文件。脚本在Spyder中成功运行,但.exe文件在执行过程中突然关闭,没有出现错误消息。我已经找到了.exe关闭的行:Python脚本在Spyder中运行,但在打包为Pyinstaller.exe时崩溃(关闭时没有错误消息),python,pandas,pyinstaller,Python,Pandas,Pyinstaller,我正在尝试使用Pyinstaller将Python脚本打包为.exe文件。脚本在Spyder中成功运行,但.exe文件在执行过程中突然关闭,没有出现错误消息。我已经找到了.exe关闭的行: df2['WholesaleCostPerUnit'] = df2.RetailCost/(df2.QuantitySold/df2.Quantity) df2是一个数据帧。这是我在剧本中第一次把一个熊猫系列分成另一个系列 更新:当df2包含9999个相同的行时.exe运行正常。但是,如果我尝试使用1000
df2['WholesaleCostPerUnit'] = df2.RetailCost/(df2.QuantitySold/df2.Quantity)
df2是一个数据帧。这是我在剧本中第一次把一个熊猫系列分成另一个系列
更新:当df2包含9999个相同的行时.exe运行正常。但是,如果我尝试使用10000行或更多(相同)行运行它,它将在上面的一行关闭,不会出现错误。有了这些信息,我可以构建一个解决方案,但我仍然很想知道为什么会发生这种情况
这是我的规范文件:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['cannabis_transaction_sample.py'],
pathex=['C:\\projects_local\\python_executables\\cannabis_markup_sampling'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='cannabis_transaction_sample',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='cannabis_transaction_sample')
要检索错误消息,您需要在程序运行时,在启用windows控制台的情况下打包文件,测试并禁用它。在你的
.spec
文件中,它就在那里:exe=exe(pyz,a.scripts,a.binaries,a.zipfiles,a.datas,…,console=True)
@Guimote非常感谢你的评论!我目前已启用控制台。如何检索错误消息?嗯,控制台应该像任何IDE一样显示引发的错误。它通常对我有用。当程序崩溃时,控制台是否没有向您显示完整的错误回溯并指向故障线路?@Guimoute奇怪的是,我根本没有看到错误。控制台在未完成脚本的情况下突然关闭。也许用“崩溃”这个词来描述所发生的事情并不合适。我将编辑帖子。尝试从cmd运行exe,可能吗?这样,在进程退出时不会立即抛出任何到stdout/stderr的打印。若要检索错误消息,请在启用windows控制台的情况下打包文件,并在程序运行时对其进行测试和禁用。在你的.spec
文件中,它就在那里:exe=exe(pyz,a.scripts,a.binaries,a.zipfiles,a.datas,…,console=True)
@Guimote非常感谢你的评论!我目前已启用控制台。如何检索错误消息?嗯,控制台应该像任何IDE一样显示引发的错误。它通常对我有用。当程序崩溃时,控制台是否没有向您显示完整的错误回溯并指向故障线路?@Guimoute奇怪的是,我根本没有看到错误。控制台在未完成脚本的情况下突然关闭。也许用“崩溃”这个词来描述所发生的事情并不合适。我将编辑帖子。尝试从cmd运行exe,可能吗?这样,在进程退出时,任何对stdout/stderr的打印都不会立即被抛出。