我在一个python脚本上使用pyinstaller导入matplotlib.pyplot. 当生成一个充满文件的目录时,pyinstaller创建的exe可以正常运行。但是,当pyinstaller-F选项用于创建单个exe文件时,exe将失败。失败时报告两个问题:
警告:文件已存在,但不应存在:C:\Users\Vern\AppData\Local\Temp\u MEI33442\Include\pyconfig.h
回溯的最后两行报告如下:
文件“C:\Users\Vern\Documents\Python\testplot\build\testplot\out00-皮兹。皮兹\matplotlib.pyplot“,第80行,后端选择中
文件“C:\PyInstaller\PyInstaller\loader\pyi_进口商.py“,第409行,加载模块中 模块=imp.load U模块(全名,fp,文件名,self.\u\u ext元组)
ImportError:无法导入模块'PySide.QtCore'
最后一个,重要的是exe停止的地方。
我在Windows7机器上使用Python2.7.6和PyInstaller2.1。在
pyinstaller运行时会生成一些警告消息。它们看起来像这样:
警告:找不到库:QtGui4.dll依赖于C:/WinPython/python-2.7.6/lib/sitepackages/PyQt4/plugins\iconengines\qsvgicon4.dll
警告:找不到库:QtSvg4.dll依赖于C:/WinPython/python-2.7.6/lib/sitepackages/PyQt4/plugins\iconengines\qsvgicon4.dll
警告:找不到库:QtCore4.dll依赖于C:/WinPython/python-2.7.6/lib/sitepackages/PyQt4/plugins\iconengines\qsvgicon4.dll
……更像后面的那些,但被省略了。在
这些警告是由pyinstaller在使用或不使用-F选项时生成的,因此我不知道它们是否相关,但它们似乎非常可疑。我已经超出了我的专业领域,所以请原谅我的无知。无论如何,即使在不使用-F选项时出现这些警告,exe也可以正常运行。它只在使用-F选项时失败。在
我到处找了找,但没有一点运气。我希望能够使用-F选项生成一个用于分发的exe文件。我没有对pyinstaller使用任何其他选项,也没有对自动生成的spec文件做任何操作。我的其他python脚本不导入matplotlib,在使用-F转换为单个exe文件时可以正常工作
这个问题的答案是: Pyinstaller QtCore Module import error
总之,pyinstaller2.1有一个QT错误,但在开发版本中已经修复了。所以,获得这个或者等待PyInstaller 2.2。在
当我试图用},但是使用
onefile
打包我的程序时,使用PyInstaller
也得到了{onedir
选项时没有问题。尽管PySide.QtCore
在运行时如预期出现在temp目录中。在我的代码中,我直接导入PyQt4,而PySide则由其他模块导入。从您发布的内容来看,这两个模块似乎也在您的代码中使用。在在阅读了this之后,我尝试在spec文件中添加'PySide'作为排除,以强制独占使用PyQt4,而exe现在运行良好。排除PySide或PyQt4可能对您的情况也有帮助。在
相关问题 更多 >
编程相关推荐