PyInstaller运行时错误? (R6034)

时间:2012-10-30 20:13:42

标签: python pyinstaller

我终于得到了PyInstaller来构建一个exe文件,但它没有运行。一旦我打开它,我就会在对话框中得到它:

Runtime Error!
Program C:\.....\MCManager.exe

R6034
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application's support team for more information.

这是我的规格:

# -*- mode: python -*-
a = Analysis(['MCManager.py'],
             pathex=['C:\\Users\\Lucas\\Dropbox'],
             hiddenimports=[],
             hookspath=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name=os.path.join('dist', 'MCManager.exe'),
          debug=False,
          strip=None,
          upx=True,
          console=False,
          icon='MCManager.ico')
app = BUNDLE(exe,
             name=os.path.join('dist', 'MCManager.exe.app'))

我环顾四周,似乎没有人遇到同样的问题。

如果它改变了什么,这个脚本使用wxPython。

5 个答案:

答案 0 :(得分:10)

我打算发表评论,但代表不够。虽然这是前一段时间被问到的,但我最近遇到了同样的问题,结果证明它是版本3.2的Pyinstaller错误。

升级到pyinstaller 3.2后,结果exe终止于R6034: https://github.com/pyinstaller/pyinstaller/issues/1985

PyInstaller 3.2,OneFile R6034,32位Python 2.7.11 https://github.com/pyinstaller/pyinstaller/issues/2042

看起来他们已经在最新的开发版中解决了这个问题,建议

pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip

在我的需求文件中使用它而不是pyinstaller == 3.2为我修补它!

答案 1 :(得分:4)

我最近开始收到“运行时错误?(R6034)” 它是在一个可靠的现有python程序上,我之前使用pyinstaller编译为onefile。我注意到问题只发生在我编译后重命名了exe之后。一旦我将其重命名为原始的exe名称,R6034就会消失。

Leason学会了......在使用pyinstaller构建之后不要重命名你的exe。如果您需要您的exe具有不同的名称,请更改源py名称,然后重新编译。

答案 2 :(得分:1)

这似乎是类似的问题https://github.com/pyinstaller/pyinstaller/issues/689

看看你是否可以使用该解决方法:

  

我能够通过使用构建可执行文件来解决问题   onedir选项而不是onefile,然后只移动清单   到包含允许的单文件可执行文件的目录   它起作用。

似乎他们正在修复它

答案 3 :(得分:0)

我有同样的问题,没有重命名任何东西,我只是构建-F并崩溃版本3.2但是这个错误不会出现在版本2.1中。

链接: https://github.com/pyinstaller/pyinstaller/releases/download/v2.1/PyInstaller-2.1.zip

我的建议? pip uninstall pyinstaller 之后你应该安装2.1版本,然后你就可以再次运行了。 ./setup.py构建 ./setup.py安装

祝你好运

答案 4 :(得分:0)

如果您在pyinstaller内置exe中调用popen,也会发生此错误。要解决此错误,您必须为popen调用的stdout使用显式文件句柄,如以下示例所示。

import sys
import subprocess
from PyQt4 import QtGui

def verify_license():
    tmp_file = '.license_output'

    try:
        with open(tmp_file, 'w+') as file_obj:
            proc = subprocess.Popen(['echo', 'hi'], shell=True,
                                    stdout=file_obj, stderr=subprocess.STDOUT,
                                    stdin=subprocess.PIPE)
            ret = proc.wait()

        if ret != 0:
            sys.exit(-1)

        with open(tmp_file, 'r') as file_obj:
            output = file_obj.read()

    except Exception as err:
        sys.exit(-1)

    if 'hi' not in output:
        raise Exception('bad news: output was %s' % (output))


def main():
    app = QtGui.QApplication(sys.argv)

    w = QtGui.QWidget()
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('Simple')
    w.show()

    sys.exit(app.exec_())


if __name__ == '__main__':
    verify_license()
    main()