I just created a small GUI program that compiles and works fine in IPython, but when I try to export it to a .exe
using pyinstaller it gives me an import error. I'm sure it's sklearn
because when I comment out the sklearn
imports my file open fine when I build it.
C:\Users\Chris\Anaconda>C:/Users/Chris/Anaconda/dist/Room_Test.exe
WARNING: file already exists but should not: C:\Users\Chris\AppData\Local\Temp\_MEI100402\Include\pyconfig.h
Traceback (most recent call last):
File "<string>", line 9, in <module>
File "C:\Users\Chris\Anaconda\Lib\site- packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
exec(bytecode, module.__dict__)
File "C:\Users\Chris\Anaconda\build\Room_Test\out00- PYZ.pyz\sklearn.neighbors", line 6, in <module>
File "C:\Users\Chris\Anaconda\Lib\site- packages\PyInstaller\loader\pyi_importers.py", line 409, in load_module
module = imp.load_module(fullname, fp, filename, self._c_ext_tuple)
File "dist_metrics.pxd", line 48, in init sklearn.neighbors.ball_tree (sklearn\neighbors\ball_tree.c:35726)
File "C:\Users\Chris\Anaconda\Lib\site- packages\PyInstaller\loader\pyi_importers.py", line 409, in load_module
module = imp.load_module(fullname, fp, filename, self._c_ext_tuple)
File "dist_metrics.pyx", line 52, in init sklearn.neighbors.dist_metrics (sklearn\neighbors\dist_metrics.c:25494)
ImportError: No module named typedefs
its better to use spec file to import another hidden libraries maybe cause the problem. I list all Sklearn libraries and add to spec file as a hiddenimports like this:
Find this dir "E:\Anaconda3\Lib\site-packages\PyInstaller\hooks". Add a file "hook-pandas.py",wrie this content to this file:
Then use this command:
Then it will be OK!
You can still use pyinstaller by adding the following to your command:
or by adding the following to your
.spec
file:Solved it myself! Ended up using py2exe. Much easier to import modules even though bundling to one .exe is not yet supported on x64 systems. But worked for my purposes. Just added the following line to the "includes":