从我的脚本创建pyinstaller,在结果中缺少PySide2.QtXml

问题描述 投票:2回答:1

我做的是打电话

pyinstaller example.py

pyinstaller为我的脚本获取所有重要的库。我可能值得一提的是我正在使用Windows机器。但当我运行结果时,它告诉我:

λ .\example.exe
Traceback (most recent call last):
  File "example.py", line 6, in <module>
  File "c:\applications\anaconda\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 714, in load_module

    module = loader.load_module(fullname)
ImportError: could not import module 'PySide2.QtXml'
[7684] Failed to execute script example

所以这里有两个问题:

  1. 我在python安装中找不到名为“PySide2.QtXml”的库。所以我假设.dll有不同的名字?实际上.dll的真实名称是什么?我找到了Qt5Xml.dll,但我不知道这是不是正确的库。
  2. 一旦我有了我的库,我想将它添加到我的example.spec文件中。文档说它必须看起来像这样: binaries=[ ( '/usr/lib/libiodbc.2.dylib', 'libiodbc.dylib' ) ], 但我不知道如何将其应用于我目前缺少的库。我假设 binaries=[ ( 'C:\somepath\Qt5Xml.dll', 'Qt5Xml.dll' ) ], 会是要走的路?

提前致谢!

python qt pyinstaller pyside2
1个回答
1
投票

我遇到了同样的问题,它看起来像是一个隐藏的导入,您只需添加到您的spec文件或命令行:

pyinstaller --hidden-import PySide2.QtXml example.py

规格文件:

a = Analysis(['start.py'],
         pathex=['/some/path'],
         binaries=[],
         datas=[],
         hiddenimports=['PySide2.QtXml'],
         hookspath=[],
         runtime_hooks=[],
         excludes=[],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=block_cipher,
         noarchive=False)
© www.soinside.com 2019 - 2024. All rights reserved.