【问题标题】:Runtime error when trying to make a .exe from .py script with Pyinstaller尝试使用 Pyinstaller 从 .py 脚本创建 .exe 时出现运行时错误
【发布时间】:2018-03-29 14:41:54
【问题描述】:

我正在尝试从我编写的 python 脚本创建一个 .exe 文件。问题是,当我从命令行运行 pyinstaller 时,它不会在构建目录中生成任何 .exe 文件,而是返回您可以找到附加的错误消息。其中,除了所有许多警告之外,我认为与该问题最相关的陈述可能是以下 RuntimeError:sip 模块实现 API v12.0 到 v12.3 但 PyQt5 .QtCore 模块需要 API v12.4。我所做的是首先尝试在原始脚本上执行任务 - 它包含使用 Kivy 开发的 GUI 的代码 - 然后切换到您可以在下面找到的更简单的脚本。请注意,我使用的是 Python 3.6 和 PyInstaller 3.3.1,并且已经尝试通过 pip3 卸载并重新安装 pyqt5(这解决了我收到的其他一些错误消息)。我还尝试使用 cx_Freeze 完成相同的任务,但没有得到任何运气(可能是由于与 python3.6 的兼容性原因),但我也愿意接受有关使用其他软件包的任何建议。提前感谢您的帮助!

import pandas
import numpy as np


df = pandas.read_excel(xlsname)
df.replace(np.nan, 'NaN', inplace = True)      
schema_list = df['Schema/Owner'].unique()
ii = 1
axs_d = open(filename + '.txt','w')
for schema in schema_list:
    ref_val = 'N'
    tables_list = list(df.loc[df['Schema/Owner'] == schema].ix[:,'Nome Tabella'].unique())
    s_table = tables_list[0]
    axs_d.write('CREATE EXTR ' + activity + '.' + ext_name + "\n  DESC //'" + schema + "'//"  +
                "\n  XF //'E:\OptimFiles\XF\\" +  activity + "\\" + activity + "_EXT\\" +  activity +
                "." + ext_name + ".XF'//\n  LOCALAD (\n" + '    SRCQUAL ' + dsalias + '.' + schema +
                    ' START ' + s_table + ' ADDTBLS N MODCRIT N ADCHGS N USENEW Y' +
                    ' USEFM N PNSSTATE N SOLUTION 0\n')
    ii = ii + 1
    for table in tables_list:
        axs_d.write('    TABLE (' + table +
                    ' ACCESS SUID REF ' + ref_val + ' DAA N UR N PREDOP A VARDELIM : COLFLAG N' +
                    '\n      EXTRROWID N )\n')
        ref_val = 'Y'
    axs_d.write('  )\n  PNSOVERRIDE N PNSOPT N\n  ALWAYSPROMPT N OPTION D INCLPK N INCLFK N INCLIDX'
            + ' N INCLALIAS N INCLASSEMBLY N INCLFUNCTION N INCLPACKAGE N INCLPAR_FUNCTION N'
            + ' INCLPAR_SCHEME N\n  INCLPROCEDURE N INCLSEQUENCE N INCLTRIGGER N INCLVIEW N' +
            ' INCLDEFAULT N INCLRULE N INCLUDT N INCLMETHOD N IGNOREUNKNOWN N COMPRESSFILE Y' +
            ' COMPRESSMODEL 1\n  COMPRESSACTIVE N ENCRYPTXF N GENSTATISTIC Y PROCESS_FILEATTACH'
            + ' Y ROWLIMIT 0 DBCONNECTIONS 1 ;\n\n' )
axs_d.close()
df.to_excel(xlsname + "_new.xls",index = False)

错误信息

【问题讨论】:

  • 请检查how to ask questionMinimal, Complete, and Verifiable example添加您的代码,您尝试了什么。
  • 你使用的是什么操作系统?
  • 如果你在命令行运行sip-v,返回什么值?
  • 我的错,我在 Windows 10 上。sip-v 只是返回一个错误@JaredForth
  • @LucaGranalli 我提出了几个可能的解决方案的答案 - 让我知道它们是否有效,否则我会继续努力

标签: python compiler-errors kivy executable pyinstaller


【解决方案1】:

我无法在 Linux 和 Mac 上测试此解决方案,但问题可能是 sip 模块只需要更新。我能想到两个可能的修复方法:

  1. 如果已安装 sip,sip-V 不应返回错误,因此请尝试运行 pip3 install SIP
  2. 如果这不起作用,我会尝试使用 pip3 uninstall pyqt5 卸载 PyQt5,然后使用 pip3 install pyqt5 再次安装它。

我希望这会有所帮助!

【讨论】:

  • 感谢您的建议,它似乎正在修复一些显示的错误。我仍然无法从 pyinstaller 中提取可执行文件。一个突出的错误可能是以下原因:RuntimeError:sip 模块实现 API v12.0 到 v12.3 但 PyQt5.QtCore 模块需要 API v12.4
【解决方案2】:

通过卸载并重新安装 pyqt5 和 sip 来修复运行时错误。最后,修复此类错误允许 pyinstaller 定期从所选 python 脚本生成所需的 .exe 文件。

【讨论】:

    猜你喜欢
    • 2022-06-19
    • 2020-01-23
    • 2021-06-14
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多