Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本在Spyder中运行,但在打包为Pyinstaller.exe时崩溃(关闭时没有错误消息)_Python_Pandas_Pyinstaller - Fatal编程技术网

Python脚本在Spyder中运行,但在打包为Pyinstaller.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

我正在尝试使用Pyinstaller将Python脚本打包为.exe文件。脚本在Spyder中成功运行,但.exe文件在执行过程中突然关闭,没有出现错误消息。我已经找到了.exe关闭的行:

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的打印都不会立即被抛出。