cdrx / docker-pyinstaller

PyInstaller for Linux and Windows inside Docker
MIT License
616 stars 238 forks source link

ModuleNotFoundError occurs even using hidden-imports/hooks #89

Open TahaBerkay opened 4 years ago

TahaBerkay commented 4 years ago

When I run PyInstaller on Linux using --onefile and some additional hidden-imports/hooks, it generates a huge executable (like 200mb) including all necessary files/libraries. Then I use this executable on Linux, it works without any issue or missing library. The thing is that it throws ModuleNotFoundError on windows when I use the windows executable - which is exe - generated by cdrx/pyinstaller-windows, even I use the same spec files or same pyinstaller commands. And this new exe is only 5 mb which is not expected for one-file executable. I'm suspecting here it's not able to bundle specified hidden imports/hooks into exe. Any help here?

Edit: I noticed it is not only about hidden-imports/hooks. It could not also find some base libs: ModuleNotFoundError: No module named ‘pandas’ I guess the same case here as well: https://stackoverflow.com/q/61598544/2528884

kayahasa commented 4 years ago

i have faced this issue before. It is like a hell. Hell which contains crazy cows.

TahaBerkay commented 4 years ago

I found this in the logs while generating exe:

9331 INFO: Processing pre-safe import module hook win32com Traceback (most recent call last): File "", line 2, in ModuleNotFoundError: No module named 'win32com' 9535 INFO: Processing pre-safe import module hook win32com Traceback (most recent call last): File "", line 2, in ModuleNotFoundError: No module named 'win32com'

After some googling, I figured out it has something to do with - pywin32 incompatibility with Python 3.7

Seems there are some workarounds. Could you please check them out? You might need to update the docker accordingly.