I have a Python 3.5 64 bit program (required by tensorflow for Windows) that uses OpenCV. I am distributing it with pyinstaller.
I built my program with Windows 10
/c/Python35/Scripts/pyinstaller -c DeepMeerkat.spec
On my computer, the .exe builds and runs perfectly. On any other non-Windows 10 machine
On
import cv2
Returns
ImportError: DLL load failed: The specified module could not be found.
I can see a huge amount of discussion on this on pyInstaller thread, but I can't quite tell how to put it into practice. Dependency walker says I'm missing a number of DLLs
api-ms-win-crt-**.dll
Okay, from the pyInstaller threads, I know that these DLLs exist
C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs
Under multiple subfolders base on architecture.
I tried adding to my .spec file
pathex=["C:/Program Files (x86)/Windows Kits/10/Redist/ucrt/DLLs/"],
Or for my particular architecture
pathex=["C:/Program Files (x86)/Windows Kits/10/Redist/ucrt/DLLs/arm"],
Which is what I thought was being suggested here
"Install the Windows Software Development Kit (SDK) for Windows 10 and expand the .spec-file to include the required DLLs, see “Distributing Software that uses the Universal CRT“ in the above-mentioned link, number 6."
That did not have any effect. I am getting hundreds of errors like
121472 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of c:\python35\DLLs\_ssl.pyd
But I can see that DLL here
C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\arm
So then I literally copied posthoc the entire folder
cp -r "C:/Program Files (x86)/Windows Kits/10/Redist/ucrt/DLLs/" dist/Lib/
But it's not clear how to connect these to the .exe. Clearly, letting pyInstaller know beforehand is preferable.
I also tried
/c/Python35/Scripts/pyinstaller --path "C:/Program Files (x86)/Windows Kits/10/Redist/ucrt/DLLs/arm" -c DeepMeerkat.spec
And it still did not find them
I've also tried adding that folder to PATH. Any ideas?
