'Cant use pyinstaller to make exe when using xmldiff module

The Error:

Traceback (most recent call last):
  File "main.py", line 9, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
  File "adapter\device.py", line 5, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
  File "adapter\adapter.py", line 29, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
  File "xmldiff\main.py", line 9, in <module>
  File "pkg_resources\__init__.py", line 909, in require
  File "pkg_resources\__init__.py", line 795, in resolve
pkg_resources.DistributionNotFound: The 'lxml>=3.1.0' distribution was not found and is required by xmldiff
[273952] Failed to execute script 'main' due to unhandled exception!

Hook file:

  • hooks
    • hook-xmldiff.py
from PyInstaller.utils.hooks import collect_all


def hook(hook_api):
    packages = [
        'lxml',
        'six'

    ]
    for package in packages:
        datas, binaries, hiddenimports = collect_all(package)
        hook_api.add_datas(datas)
        hook_api.add_binaries(binaries)
        hook_api.add_imports(*hiddenimports)

pyinsataller line:

pyinstaller -F --additional-hooks-dir hooks main.py

both lxml and six modules are installed already.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source