【问题标题】:Error when creating executable file with pyinstaller使用 pyinstaller 创建可执行文件时出错
【发布时间】:2016-12-13 05:03:54
【问题描述】:

我正在尝试使用 pyinstaller 为我的 python 脚本创建一个 exe,每次遇到可以在 pastebin here 中找到的错误时。

另外,当我双击 exe 文件时,它会显示此错误:

C:Users\Afro\AppData\Local\Temp_MEI51322\VCRUNTIME140.dll 不是为在 Windows 上运行而设计的,或者它包含错误。尝试使用原始安装介质重新安装程序,或联系您的系统管理员或软件供应商寻求支持。错误状态0xc000007b

然后是这个:

加载 Python DLL 时出错: C:\Users\Afro\AppData\Local\Temp_MEI51322\python35.dll(错误代码193)

请问怎么了?

【问题讨论】:

    标签: python python-3.x exe pyinstaller


    【解决方案1】:

    我被类似的问题困扰着。在您的情况下,UPX 可能会破坏 vcruntime140.dll。 解决方案是关闭 UPX,因此只需将 --noupx 添加到您的 pyinstaller 调用中。

    pyinstaller --noupx --onedir --onefile --windowed get.py
    

    这里长解释:UPX breaking vcruntime140.dll (64bit)

    【讨论】:

    • 我过去遇到过同样的问题,我找到了一个选项,可以通过添加 --upx-exclude FILE 来从 UPX 进程中排除 vcruntime140.dll,以防止在使用 upx 时压缩二进制文件。如果 upx 在压缩过程中损坏了某些二进制文件,通常会使用此选项。 FILE 是没有路径的二进制文件的文件名。此选项可以多次使用。 pyinstaller --upx-exclude=vcruntime140.dll --onefile --windowed get.py搜搜:pyinstaller.readthedocs.io/en/stable/…
    【解决方案2】:

    我也遇到过这个问题,根本原因是我使用upx压缩文件大小。解决办法是排除不应该被upx压缩的文件:

    pyinstaller --onefile --console --upx-dir=/path/to/upx --upx-exclude=vcruntime140.dll --upx-exclude=python36.dll my_script.py
    

    【讨论】:

      【解决方案3】:

      在我的情况下是:

      pyinstaller  --clean --win-private-assemblies --noupx --onedir --onefile script.py
      

      --windowed 导致 wxWidgets 出现问题

      【讨论】:

        【解决方案4】:

        我尝试使用此版本的 Pyinstaller 命令,将此命令添加到 .bat 文件并执行 .bat 文件。它对我有用:

        pyinstaller --log-level=WARN ^
            --upx-dir <PATH_TO_UPX.exe_FILE> ^
            --upx-exclude vcruntime140.dll ^
            --upx-exclude ucrtbase.dll ^
            --upx-exclude qwindows.dll ^
            --upx-exclude libegl.dll ^
            --name <NAME_OF_APPLICATION> ^
            --onefile --windowed ^
            <PY_DEPENDENT_FILES.py>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-16
          • 1970-01-01
          • 1970-01-01
          • 2020-11-26
          • 1970-01-01
          • 2022-08-08
          相关资源
          最近更新 更多