【问题标题】:Pyinstaller .exe does not produce expected outcomePyinstaller .exe 没有产生预期的结果
【发布时间】:2018-04-21 04:55:25
【问题描述】:

这是我第一次使用 pyinstaller 在 Windows 机器上构建我的 .py 的 .exe。我已经成功生成了 .exe,但是当我运行代码时,它不会生成我的代码应该生成的 .csv 文件。

附带说明,当我在 IDE 中运行我的脚本时,它会成功生成我期望的 .csv。底部是我的代码中应该生成输出的部分。

writer = pd.ExcelWriter('Desired_Output.xlsx', engine= 'xlsxwriter')
df3.to_excel(writer, sheet_name='Output')

#Get the xlsxwriter workbook and worksheet objects
workbook = writer.book
worksheet = writer.sheets['Output']

# Add some cell formatting and save the contents
format1 =  workbook.add_format({'left': 1, 'right': 1, 'top': 1, 'bottom': 1, 'bg_color': 'gray' })
format2 = workbook.add_format({'bottom': 1})
format3 = workbook.add_format({'bottom': 1, 'font_size': 7, 'bg_color': '#98FB98'})
format4 = workbook.add_format({'right': 1, 'bottom': 1})
worksheet.set_column('B:B', 12, format1)
worksheet.set_column('C:N', 8, format2)
worksheet.set_column('L:L', 6, format3)
worksheet.set_column('N:N', 8, format4)
writer.save()

在命令提示符下运行时出现错误 没有模块 xlsxwriter,但是当我尝试运行 pip install 时,它说我已经在运行 xlsxwriter

【问题讨论】:

  • 当我们看不到您的代码时,很难调试问题。你能创建一个有这个问题的最小脚本吗?要尝试的另一件事:在脚本中放置一个 pdb.set_trace(),然后使用 pyinstaller 构建它。当您运行 exe 时,您将能够访问调试器。

标签: python exe pyinstaller


【解决方案1】:

程序运行不正确可能是因为 .exe 未正确捆绑,或者应用程序可能正在关闭,因为它无法导入包或找到外部文件,这会阻止您的应用程序启动。要查看与运行可执行文件相关的错误消息,请从命令提示符运行 .exe 文件:/path/to/app/dist/MyApp.exe(在命令提示符中)。这将允许您观察捆绑应用程序后可能存在的任何错误。如果程序在导入语句期间确实失败了,您可能需要将包添加到 .spec 文件中的 hiddenimports 列表中。

如果没有更多信息,我们很难诊断这个问题,但是命令提示符中显示的输出可能会提供更多信息。

**编辑:**您的编辑表明捆绑的应用程序中未包含至少一个模块。

将模块添加到 .spec 文件:运行 pyinstaller 后,将在包含 .py 文件的目录中生成一个 .spec 文件。您可以打开此 .spec 文件并将模块添加到名为 hiddenimports 的列表中。例如:hiddenimports = ['xlsxwriter', 'any_other_modules']。更新 .spec 文件后,使用 .spec 文件再次运行 pyInstaller 命令:pyinstaller --some_options my_app.spec

--或--

在命令提示符下添加模块:使用hiddenimports 选项运行pyinstaller:pyinstaller --hidden-import xlsxwriter my_app.py

请参阅docs 了解更多信息。

【讨论】:

    猜你喜欢
    • 2015-04-20
    • 2019-12-13
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2017-05-22
    • 2016-08-10
    • 1970-01-01
    相关资源
    最近更新 更多