makehumancommunity / makehuman

This is the main repository for the MakeHuman application as such.
http://www.makehumancommunity.org
Other
1.22k stars 250 forks source link

package windows distribution using pyInstaller #102

Closed Zenahr closed 4 years ago

Zenahr commented 4 years ago

I had problems running the script by just opening it and had to use cmd and enter python makehuman.py

For regular, non-coding users it might be useful to just have a regular .exe which just wraps makehuman.py into an executable, thus diminshing possible confusion.

Distribution used: makehuman-community-20200621-windows

Aranuvir commented 4 years ago

There were problems with pyInstaller, therefore we migrated from it...

Zenahr commented 4 years ago

Would you like to elaborate? Or is there a thread to the "problems" you ran into you could direct me to?

joepal1976 commented 4 years ago

We used pyinstaller for several years, for the py2 version. When we tried to upgrade to py3 and pyqt5 we were never able to get it to pick up all the dependencies correctly, making it crash with incomprehensible error messages. Googling for "pyinstaller not working with pyqt5" showed us that we were far from alone with having these problems.

Further, even back when pyinstaller was working, it was often very diffucult to see what caused crashes on user machines. For example, having python installed on the machine would often cause the pyinstaller exe to fail to run with "dll load error" and similar not very informative error messages.

In comparison, pynsist is very, very easy to work with and you can see immediately what happens. The sum total of the package configuration is this: https://github.com/makehumancommunity/makehuman/blob/master/buildscripts/win32/pynsist.cfg

The only problem we had with it so far was figuring out how to place an icon on the desktop, which isn't supported out of the box since the author of pynsist dislike desktop icons.

I have so far not had any reason to regret dropping pyinstaller.

Zenahr commented 4 years ago

@joepal1976 Thank you for the explanation. Makes total sense.