Создание pyinstaller из моего скрипта, в результате отсутствует PySide2.QtXml - PullRequest
0 голосов
/ 29 мая 2018

То, что я сделал, называлось

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. Я не могу найти библиотеку с именем "PySide2.QtXml"в моей установке Python.Итак, я предполагаю, что .dll имеет другое имя?Каким на самом деле будет настоящее имя .dll?Я нашел Qt5Xml.dll , но не могу сказать, правильная ли это библиотека.

  2. Как только у меня будет библиотека, я хочу добавить ее в своюфайл example.spec.Документация говорит, что это должно выглядеть примерно так:

    binaries=[ ( '/usr/lib/libiodbc.2.dylib', 'libiodbc.dylib' ) ],
    

    Но я не уверен, как применить это к моей в настоящее время отсутствующей библиотеке.Я предполагаю, что

    binaries=[ ( 'C:\somepath\Qt5Xml.dll', 'Qt5Xml.dll' ) ],
    

    было бы способом пойти?

Спасибо заранее!

1 Ответ

0 голосов
/ 20 апреля 2019

Я столкнулся с той же проблемой, похоже, это скрытый импорт, который вы можете добавить в свой файл спецификаций или в командную строку:

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)
...