Pyinstaller构建文件,但在某些.dll

时间:2017-01-12 03:37:25

标签: python dll pyinstaller

当我运行我的py程序时,它按照我的意图运行。如果我在Linux机器上并使用Pyinstaller构建可执行文件,那么它可以毫无问题地构建并执行而不会出现问题。我已经搜索了Pyinstaller文档,git等等。没有任何已发布的修复程序帮助

我仍然是python的新手,觉得它可能是一个简单的修复,可能会过度思考问题

为什么我不能在使用pyinstaller的基于Windows的系统上构建功能性的.exe?

Windows 10系统

Pyinstaller版本3.2

Python版本3.5.2

这是一个使用appJar的GUI程序,它也是最新的。

文件确实构建,但错误"无法执行脚本"

修改 不确定这是否最好像这样编辑但是...... 因此研究输出并进行调整,问题似乎是appJar.py。由于某种原因,它缺少资产,我正在研究它。问题是我仍然不习惯看这种输出,不知道从哪里开始。

C:\Users\_User_>C:\temp\fileCreatorGUI\fileCreatorGUI.exe
Traceback (most recent call last):
  File "F:\Users\_User_\python_working\fileCreatorGUI.py", line 73, in <module>
    app = gui()
  File "C:\Users\_User_\AppData\Local\Programs\Python\Python35\lib\site-packages\appJar\appjar.py", line 509, in __init__
    self.topLevel.wm_iconbitmap(self.appJarIcon)
  File "C:\Users\_User_\AppData\Local\Programs\Python\Python35\lib\tkinter\__init__.py", line 1716, in wm_iconbitmap
    return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "C:\temp\fileCreatorGUI\appJar\resources\icons\favicon.ico" not defined
Failed to execute script fileCreatorGUI

编辑2 请参阅下面的答案,但是我在这个树上吠叫了错误的树,

.dll&#39>上的Pyinstaller输出阻塞:

api-ms-win-core-console-l1-1-0.dll
api-ms-win-core-datetime-l1-1-0.dll
(There are like ~40 of these)

我将这些.dll添加到python路径中,我在.spec文件中的bianaries中声明了它们。

这是一个截断日志:

    2414 WARNING: Can not get binary dependencies for file: C:\Windows\system32\api-
ms-win-crt-stdio-l1-1-0.dll
Traceback (most recent call last):
  File "C:\Users\_USER_NAME\AppData\Local\Programs\Python\Python35-32\lib\site-pa
ckages\PyInstaller\depend\bindepend.py", line 695, in getImports
    return _getImports_pe(pth)
  File "C:\Users\_USER_NAME\AppData\Local\Programs\Python\Python35-32\lib\site-pa
ckages\PyInstaller\depend\bindepend.py", line 122, in _getImports_pe
    dll, _ = sym.forwarder.split('.')
TypeError: a bytes-like object is required, not 'str'
2423 WARNING: Can not get binary dependencies for file: C:\Windows\system32\api-
ms-win-crt-heap-l1-1-0.dll

我尝试了此处列出的修复程序: https://github.com/pyinstaller/pyinstaller/pull/1981

但它似乎没有什么区别。

有人建议添加sys.path.insert()路线,但无论如何都没有任何区别 我也尝试在Windows 7的VM中,干净安装,没有变化。我的下一步是尝试在Debian中使用Wine,但我真的不想走那条路。任何帮助,将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

原来这是一个appJar /打包问题,pyinstaller没有查找资产的正确目录。根据appJar的开发,我在appJar.py中注释了两行代码,508-509行:

if self.platform == self.WINDOWS:
    self.topLevel.wm_iconbitmap(self.appJarIcon)

有关详细信息,请点击此处:https://github.com/jarvisteach/appJar/issues/84 我可能可以通过在pyinstaller中使用--path参数来解决这个问题,但目前问题已完全解决