Cross-platform app on windows and mac: pyinstaller/cx_freeze/bbfreeze (windows,mac,linux) versus combination of py2exe(windows) py2app(mac)?

I’m creating my first set of executables in mac and windows for my wxpython app. It uses the pubsub module and sqlalchemy.

Can anyone shed some light on the pros and cons between using the cross platform pyinstaller/cx_freeze/bbfreeze for building both the windows and mac executables versus using a combination of py2exe for windows and py2app for mac?

What approach can you recommended?

I see that py2exe hasn’t been updated in 5 years while pyinstaller, cx_freeze, bbfreeze and py2app are actively maintained. Also py2exe, bbfreeze, pyinstaller are not compatible with python 3, which is fine since I’m using python 2.7.3.

Hi,

···

On Thursday, January 9, 2014 12:02:33 AM UTC-6, RedHotChiliPepper wrote:

I’m creating my first set of executables in mac and windows for my wxpython app. It uses the pubsub module and sqlalchemy.

Can anyone shed some light on the pros and cons between using the cross platform pyinstaller/cx_freeze/bbfreeze for building both the windows and mac executables versus using a combination of py2exe for windows and py2app for mac?

What approach can you recommended?

I see that py2exe hasn’t been updated in 5 years while pyinstaller, cx_freeze, bbfreeze and py2app are actively maintained. Also py2exe, bbfreeze, pyinstaller are not compatible with python 3, which is fine since I’m using python 2.7.3.

It’s my understanding that py2app is probably the easiest for Mac. I haven’t really seen any posts on this list about people using any of the others for Mac. I have personally used py2exe, pyinstaller, cx_freeze and bbfreeze on Windows. I like py2exe, but I would probably switch to one of the others now because it’s been so long since it’s had a release. I actually looked at it last week to see if any work had been done and there is some commits, but the maintainers aren’t doing much…do I think it’s pretty much dead right now.

Mike

pyinstaller relatively recently added Mac support, but I'm not sure how
good or well-tested it is.

I'm pretty sure cx_freeze does not support the Mac, and I'm quite sure that
bbfreeze does not.

Note that bbfreeze nominally did at one point, but it didn't build a proper
app bundle or any of that. The developer put out a request for a Mac
maintainer, but non one took it up, so it's dead for now.

If you check out pyInstaller, I'd make sure it produces a proper App bundle
-- that's what Mac users expect. And please report back here!

py2app and py2exe try to use the same API, but I've found I have to special
case it enough that it's not all that much easier than writing two totally
different bundling scripts. So py2app and one of teh others is an option,
too.

-Chris

···

On Thu, Jan 9, 2014 at 6:50 AM, Mike Driscoll <kyosohma@gmail.com> wrote:

It's my understanding that py2app is probably the easiest for Mac. I
haven't really seen any posts on this list about people using any of the
others for Mac.

--

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov

First I tried GUI2exe from Andrea Gavana (which tries to provide a common interface for a lot of freezing tools) and found it very helpful for solving the more obscure problems of freezing (like packaging the MSVCRT90.DLL and this stuff), but I failed miserably later on when I had to integrate more demanding packages. Because GUI2exe setup.py files are rather unique, it was difficult to integrate recipes found on the internet and I gave it up.

Then I stumbled across esky, which has working solutions integrated for the shipping of the Runtime DLLs and also proper handling of the manifest for GUI theming and stuck with it since then (using py2exe). It has also provisions for updating frozen packages (see Robin Dunns example setup.py example for it).

https://github.com/wxWidgets/wxPython/blob/master/samples/doodle/setup.py

It is also designed to work for py2app and other freezers, but I can only confirm the suitability for WinXP to Win8.

···

On Thursday, January 9, 2014 7:02:33 AM UTC+1, RedHotChiliPepper wrote:

I’m creating my first set of executables in mac and windows for my wxpython app. It uses the pubsub module and sqlalchemy.
What approach can you recommended?

cx_freeze does support the Mac and ostensibly builds app bundles. That
said, I've never actually been able to get it to work myself with the one
project I have that I've actually tried making bundles for.
-jo

···

On Thu, Jan 9, 2014 at 4:48 PM, Chris Barker <chris.barker@noaa.gov> wrote:

On Thu, Jan 9, 2014 at 6:50 AM, Mike Driscoll <kyosohma@gmail.com> wrote:

It's my understanding that py2app is probably the easiest for Mac. I
haven't really seen any posts on this list about people using any of the
others for Mac.

pyinstaller relatively recently added Mac support, but I'm not sure how
good or well-tested it is.

I'm pretty sure cx_freeze does not support the Mac, and I'm quite sure
that bbfreeze does not.

--
Jo Valentine-Cooper (jvc@nwcs.com)
Of course, I don't know how interesting any of this really is,
but now you've got it in your brain cells so you're stuck with it.
--Gary Larson

RE; PyInstaller.
Using 2.1 recent. +Worked out with PIL/Pillow Build Problems.

Well, my SourceCoder runs right from a thumbdrive on All 3 major platforms. I can say it reliably builds itself from a portable python on Windows and Linux right on a thumbdrive. I don’t have access to a mac currently ATM, so dont know.
I’m not sure if all grabbed stuff is really necessary as there is a bit of difference with PyInstaller outputs:
Ex: dropping everything to a folder(loose dll files/etc and a single executable) compared to a standalone executable(1 exe/whatever).

It seems PyInstaller will grab any and everything necessary to compile your app.
This I’m sure is still a WIPz part of all this(PyInstaller) as a single small script still will grab unnecessary stuff at times, depending on your imports in your code, but always seems to work flawlessly.

Note: I’m not a laywer, and the part of everything REQ to run may be included in your standalone. PyInstaller says you can license your output binary any way you want.
There may be some issues here with this approach…
Like I said… I’m not a lawyer. I quit trying to be one at the age of 8 after figuring out what the truth of the matter was.

In simple terms: PyInstaller DOES NOT import Licensing Terms and sort them out for users.

···

On Thursday, January 9, 2014 12:02:33 AM UTC-6, RedHotChiliPepper wrote:

I’m creating my first set of executables in mac and windows for my wxpython app. It uses the pubsub module and sqlalchemy.

Can anyone shed some light on the pros and cons between using the cross platform pyinstaller/cx_freeze/bbfreeze for building both the windows and mac executables versus using a combination of py2exe for windows and py2app for mac?

What approach can you recommended?

I see that py2exe hasn’t been updated in 5 years while pyinstaller, cx_freeze, bbfreeze and py2app are actively maintained. Also py2exe, bbfreeze, pyinstaller are not compatible with python 3, which is fine since I’m using python 2.7.3.