当前位置: 首页 > 知识库问答 >
问题:

pyinstaller不会将pyd和dll文件与--onefile绑定

谢承颜
2023-03-14

我正在尝试使用pyinstaller将一个cefpython1应用程序捆绑到一个exe中。我有一个工作规范文件,它为cefpython1示例创建了一个发行版,cefsimple:

# -*- mode: python -*-

def get_cefpython_path():
    import cefpython1 as cefpython

    path = os.path.dirname(cefpython.__file__)
    return "%s%s" % (path, os.sep)

cefp = get_cefpython_path()

a = Analysis(['cefsimple.py'],
             hiddenimports=["json.decoder", "json.scanner", "json.encoder"])
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='cefsimple.exe',
          debug=False,
          strip=None,
          upx=False,
          console=False )
coll = COLLECT(exe,
               a.binaries + [('icudt.dll', '%s/icudt.dll' % cefp, 'BINARY')],
               a.zipfiles,
               a.datas + [('locales/en-US.pak', '%s/locales/en-US.pak' % cefp, 'DATA'), ('cefsimple.html', 'cefsimple.html', 'DATA'), ('icon.ico', 'icon.ico', 'DATA')],
               strip=None,
               upx=False,
               name='cefsimple')

项目文件可以在我的谷歌硬盘上找到。不关心设置。py,它包含一个py2exe构建,我在pyinstaller旁边玩这个构建。您需要Python2.7、Win32gui、cefpython1,当然还有pyinstaller软件包来运行它,我只在Win32版本中测试过它!如果开发pyinstaller有任何更改,我甚至尝试过安装它。

如果我尝试使用--onefile属性执行pyinstaller,似乎没有任何变化,pyinstaller只是在dist下创建分发目录。我使用的命令是:pyinstaller--onefile-simple。规格

已测试--一个文件和一个简单的Hello World python文件,它确实可以工作。是什么导致pyinstaller不创建单个exe?构建日志没有显示任何有趣的内容,但在警告文件中有一些内容我不理解。例如,它说没有名为cefpython1的模块。但是正确的pyd被复制到dist目录,并且应用程序仍在工作。

以下是在dist/:cefsimple下创建的文件列表。lst也许这有助于发现问题。

共有1个答案

江鹏飞
2023-03-14

我使用的命令是:pyinstaller--onefile-cefsimple。规格

已测试--一个文件和一个简单的Hello World python文件,它确实可以工作。是什么导致pyinstaller不创建单个exe?

当您键入pyInster--onefilecefsimple.spec时,选项--onefile将被忽略,因为. spec已经定义了您将获得目录还是独立文件。带有COLLECT函数的. spec文件将构成一个完整的dist目录。

我建议重新制作一个新的。通过键入pyi makespec--onefile-simple来创建spec文件。py并添加回各种修改(数据、二进制文件、隐藏导入…),然后尝试pyinstaller。规格不带选项。这在pyinstaller 3.3中适用。1.

 类似资料:
  • 问题内容: 我正在尝试使用构建一个包含文件和图标的单文件EXE。我一生无法忍受。 如果我这样做了,那么一切都很好。当我使用时,它(在运行编译的EXE时)找不到引用的其他文件。它找到DLL和其他所有东西,只是找不到两个映像。 我查看了运行EXE时生成的,并且文件确实在其中。当我将EXE放到该临时目录中时,它会找到它们。很困惑。 这就是我添加到.spec文件中的内容 我还要补充一点,我也尝试过不要将它

  • 我试图捆绑我的py脚本作为一个. exe使用PyInstaller 2.0。我可以捆绑脚本,但是在我的脚本中,我需要打开一个应该捆绑在exe中的文件(所以它是可移植的)。我做这个有困难... 在我的生活中。是的,我有 我使用PyInstaller 2.0,这在我的电脑上工作正常,但是如果我把exe转移到另一台电脑上,它就不能工作了...PyInstaller 2.0非常新,所以上面的文档很少,出版

  • 问题内容: 现在,我正在使用Pyinstaller。我有一个脚本,可以从img文件夹中获取图像。 我生成.exe的脚本是 问题是仅生成.exe文件,但整个文件夹/ img被忽略。 问题:为了自动获取.exe文件+ / img文件夹,我需要在上一行中添加哪种附加语法? 更新12/18/2013 我的意思是:执行pyinstaller.py脚本并包含所有参数后,我必须在/ dist文件夹中看到:.ex

  • 我有一个gui程序,我用它来处理扫描的pdf,并寻找带有二维码的页面,这告诉程序在哪里可以将pdf分成多个文件。我的程序本质上是一个函数列表,当每个步骤完成时,这些函数会一个接一个地相互调用。 我遇到麻烦的地方是当我试图用PyInstaller将它编译成exe时。我的程序作为python文件运行良好,并且在指定--noConsole和--onefile选项时也能正常工作。我不能工作的是当我两者都用

  • 我试图添加一个图像到一个文件的PyInster产生。我读过很多问题/论坛,比如这个和那个,但仍然不起作用。 我知道对于一个文件操作,Pyinstller会产生一个临时文件夹,可以通过.然而,我不知道在我的脚本中应该在哪里添加这个. 请显示以下内容: 1-在哪里和如何应该添加?在python脚本中,还是在规范文件中? 2-要使用的确切命令是什么?我试过了 或 然后添加('myImag.png','i

  • 我正在使用python 2.7在windows 10 64bit上工作。 这些是缺少durng pyinstaller的libs:9661警告:lib未找到:libeay32.dll 10082警告:lib未找到:ssleay32.dll 11941警告:lib未找到:libmysql.dll 此外,这些都是在构建文件夹中创建的WarnMain.txt中丢失的dll。他们太多了,不能在这里展示。