I want to generate a single executable file from my python script. For this I use pyinstaller. I had issues with mkl libraries because I use numpy in the script.
I used this hook so solve the issue, it worked fine. But it does not work if I copy the single executable file to another directory and execute it. I guess I have to copy the hook also. But I just want to have one single file that I can use at other computers without copying .dll's
or the hook.
I also changed the .spec
file as described here and added the necessary files to the binaries
-variable. That also works as long as the .dll's
are in the provided directory for the binaries
-variable , but that won't work when I use the executable on a computer that doesn't have these .dll's
.
I tried using the --hidden-import= FILENAME
option. This also solves the issue, but just when the .dll's
are provided somewhere.
What I'm looking for is a possibility to bundle the .dll's
into the single executable file so that I have one file that works independently.
When I faced problem described here https://github.com/ContinuumIO/anaconda-issues/issues/443 my workaround was
pyinstaller -F --add-data vcruntime140.dll;. myscript.py
-F
- collect into one *.exe file
.
- Destination path of dll in exe file
from docs http://pyinstaller.readthedocs.io/en/stable/spec-files.html#adding-data-files