解決方法
最初のPyinstallerの実行で生成された(Pythonファイル名).spec を直接編集して不足しているdll/Moduleのパスを追加する。
a = Analysis(
...
binaries=[(r'.\venv_exif\Lib\site-packages\pyexiv2\lib\py3.8-win\exiv2api.pyd', '.'),(r'.\venv_exif\Lib\site-packages\pyexiv2\lib\exiv2.dll', '.')]
...
その後、spec名指定でPyinstallerを実行する。
Pyinstaller (Pythonファイル名).spec
もしくは
--add-binary オプションで指定する。
Pyinstaller (Pythonファイル名).py --add-binary "\venv_exif\Lib\site-packages\pyexiv2\lib\py3.8-win\exiv2api.pyd"
##Issue
Imported package used in python script : pyexiv2
Exe creation by Pyinstaller was completed successfully but runtime error occurs.
###Error 1 (missing exiv2.dll)
pyimod04_ctypes.PyInstallerImportError:
Failed to load dynlib/dll 'C:\\Users\\xxx\\AppData\\Local\\Temp\\_MEI120722\\pyexiv2\\lib\\exiv2.dll'.
Most likely this dynlib/dll was not found when the application was frozen.
###Error 2 (missing exiv2api.pyd)
ModuleNotFoundError: No module named 'exiv2api'
##Solution :
In spec file, you should specify exiv2api.pyd and exiv2.dll
a = Analysis(
...
binaries=[(r'.\venv_exif\Lib\site-packages\pyexiv2\lib\py3.8-win\exiv2api.pyd', '.'),(r'.\venv_exif\Lib\site-packages\pyexiv2\lib\exiv2.dll', '.')]
...
(or using option --add-binary)