Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll
Maybe another DLL necessary for MKL, such as libiomp5md.dll
for example, is missing and causes the error. See Cannot load mkl_intel_thread.dll on python executable, my answer there and its comments.
If this still does not solve your problem, try to manually copy other DLLs from the anaconda environment's library path into the app installation directory and its lib
subdirectory. Once you have found which dependency is missing, you can use the include_files
option of cx_Freeze to automatize this step in the setup (as you know).
Another possible issue would be that you have an incompatible version of MKL installed on your system and that the frozen application finds this wrong one, but this is unlikely unless you have a 32-bit Python installation on a 64-bit system or have installed the application on another system.
EDIT:
It could still also simply be that the frozen application does not find mkl_intel_thread.dll
although where
finds it. where
looks in the system search path given by the PATH
environment variable, while Python looks in the modules search path given by sys.path
, which usually does not include the content of PATH
, see Where is Python's sys.path initialized from? But on Windows there is a fallback mechanism for registered DLLs (I don't know how it works). Anyway, one should not rely on this fallback as soon as one intends to install and run the application on another system, because the necessary DLL may not be installed there. Thus the necessary dependencies should always be included in the installation directory.