Getting tired with py2exe

T

Thomas Heller

I'm slowly getting tired maintaining py2exe. It is far from perfect,
although it has interesting features (I would say).

The problem, apart from the work, is that it is good enough for me - I
can do everything that I need with it. But I assume I use far less
libaries than other Python programmers, so a lot of bugs will never bite
me.

It is also interesting that the recently introduced bundle-files option,
which allows to build single-file exes has gained a lot of interest -
although the ONLY use case (so far) I have myself for it is to implement
inproc COM servers which will compatible with Python clients (and other
Python inproc COM servers) because of the total isolation of the Python
VMs.

Is anyone interested in taking over the maintainance, documentation, and
further development?

Should py2exe be integrated into another, larger, package? Pywin32
comes to mind, but also Philip Eby's setuptools (that's why I post to
distutils-sig as well)...

Thomas
 
S

Steve M

What about PyInstaller that was announced the other day? The feature
list looks great, and it appears the developers intend to maintain and
enhance the program indefinitely.

http://groups.google.com/group/comp...3c1749d9f?q=ANN&rnum=1&hl=en#583da383c1749d9f

http://pyinstaller.hpcf.upr.edu/pyinstaller

Feature highlights:
* Packaging of Python programs into standard executables, that work on
computers without Python installed.
* Multiplatform: works under Windows, Linux and Irix.
* Multiversion: works under any version of Python since 1.5.
* Dual packaging mode:
* Single directory: build a directory containing an executable plus
all
the external binary modules (.dll, .pyd, .so) used by the program.
* Single file: build a single executable file, totally
self-contained,
which runs without any external dependency.
* Support for automatic binary packing through the well-known UPX
compressor.
* Optional console mode (see standard output and standard error at
runtime).
* Selectable executable icon (Windows only).
* Fully configurable version resource section in executable (Windows
only).
* Support for building COM servers (Windows only).
 
J

James Stroud

What about PyInstaller that was announced the other day? The feature
list looks great, and it appears the developers intend to maintain and
enhance the program indefinitely. ....

http://pyinstaller.hpcf.upr.edu/pyinstaller

That's one short "indefinitely":

Not Found
The requested URL /pyinstaller was not found on this server.
Apache/2.0.53 (Fedora) Server at pyinstaller.hpcf.upr.edu Port 80

James

--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

http://www.jamesstroud.com/
 
S

Simon John

James Stroud wrote:

[snip]
That's one short "indefinitely":

Not Found
The requested URL /pyinstaller was not found on this server.
Apache/2.0.53 (Fedora) Server at pyinstaller.hpcf.upr.edu Port 80

It seems that the URL is http://pyinstaller.hpcf.upr.edu
From the website it seems this is a continuation of McMillan Installer,
which they claim is "far superior" to py2exe! Personally I gave up on
MMI, prefering py2exe on Windows and cx_Freeze on UNIX.

And if they want to use UPX, well that's up to them, but I've had some
problems with it and don't particularly like the thought of runtime
decompression and the two process thing. And when you can compress the
distributable using 7zip or whatever, why bother keeping it compressed
once downloaded?

Ah well, I wish you, whoever takes over py2exe and the PyInstaller guys
the best of luck!
 
B

Bugs

Steve M wrote:
[snip]
* Dual packaging mode:
* Single directory: build a directory containing an executable plus
all
the external binary modules (.dll, .pyd, .so) used by the program.
* Single file: build a single executable file, totally
self-contained,
which runs without any external dependency.
[snip]

I've never used pyinstaller but even though it can create a single
executable file, doesn't it still write files out to the filesystem to a
temp directory for actual execution? Then cleans them up when the
application quits?

Whereas py2exe can create an executable that NEVER writes any files out
to the filesystem, they are loaded instead directly from the executable?

If so then that's a major difference and IMHO the py2exe method is superior.
 
B

Bugs

Thomas Heller wrote:
[snip]
Is anyone interested in taking over the maintainance, documentation, and
further development?

Should py2exe be integrated into another, larger, package? Pywin32
comes to mind, but also Philip Eby's setuptools (that's why I post to
distutils-sig as well)...

IMHO, it would be nice if the same folks (or groups working closely
together) maintained both py2exe AND py2app. Then they could share some
code and concepts, create a unified and *consistent* solution on all
supported platforms, etc. Perhaps even creating a Linux version, with
all 3 versions working identically...
 
G

Giovanni Bajo

James said:
That's one short "indefinitely":

Not Found
The requested URL /pyinstaller was not found on this server.
Apache/2.0.53 (Fedora) Server at pyinstaller.hpcf.upr.edu Port 80

Yes, we had a short offline period today due to maintenance on the server,
sorry for that.
 
G

Giovanni Bajo

Simon said:
And if they want to use UPX, well that's up to them, but I've had some
problems with it and don't particularly like the thought of runtime
decompression and the two process thing.

UPX compression is totally optional, and it is even disabled by default. For
the log, I have been using UPX for many, many years and never had a problem
whatsoever, but surely there had been bugs.

Nonetheless, if you are so worried about it, I wonder how you can feel
comfortable with py2exe loading up DLLs with his own version of LoadLibrary. It
looks like potentially much more dangerous to me. Or maybe you never build
single-file distributions and you go with single-dir distributions... in which
case there is no "two process" thing.
And when you can compress the
distributable using 7zip or whatever, why bother keeping it compressed
once downloaded?

Some people like the idea of "absolutely no installation process needed".
 
G

Giovanni Bajo

Bugs said:
Whereas py2exe can create an executable that NEVER writes any files
out to the filesystem, they are loaded instead directly from the
executable?
If so then that's a major difference and IMHO the py2exe method is
superior.

To do this, py2exe uses a manually rewritten version of LoadLibrary (the win32
api call in charge of loading DLLs). Since nobody has access to the original
source code of LoadLibrary (across all Windows version), the rewritten version
is by definition incomplete and less stable; it might also be not forward
compatible (that is, your shipped application may break on Windows Vista, or if
you package applications compiled with newer Visual Studio versions).

So it's a trade-off problem. I'm not a fan of writing temporary files to disk,
but surely I prefer this to a potential compatibility headache; an executable
built by PyInstaller will dump some stuff into your temp directory, but it
won't run into compatibility problem when run on that computer or with that
DLL. Anyway, I'm not against adding things to PyInstaller in principle: if
there is enough request for such a feature, we might as well add it.
 
B

Bugs

Any luck on finding anyone to take over py2exe development Thomas? It's
a GREAT project and would be a shame to see it fall into obsolescence.

Thomas Heller wrote:
[snip]
Is anyone interested in taking over the maintainance, documentation, and
further development?
[snip]
 
T

Thomas Heller

Bugs said:
Any luck on finding anyone to take over py2exe development Thomas?
It's a GREAT project and would be a shame to see it fall into
obsolescence.

No, nobody stepped up (yet).

Thomas
 
B

Bugs

What do you think of the idea of putting both py2exe AND py2app under
the same umbrella? I don't know what the status of py2app is or who
maintains it but I was thinking that it would be ideal if the 2
utilities could share code, ideas, protocols, etc. Seems like this
synergy and consistency would be very beneficial. Perhaps then a Linux
version could be developed with an identical inferface.
 
T

Thomas Heller

Bugs said:
What do you think of the idea of putting both py2exe AND py2app under
the same umbrella? I don't know what the status of py2app is or who
maintains it but I was thinking that it would be ideal if the 2
utilities could share code, ideas, protocols, etc. Seems like this
synergy and consistency would be very beneficial. Perhaps then a
Linux version could be developed with an identical inferface.

That's not a bad idea. Philip Eby even suggested to put something like
py2exe's modulefinder (well, it's really Python's) and py2app's
modulegraph into his setuptools package - although I didn't respond at
that time.

Anyway, these are changes that I don't want to do myself. Whoever wants
to start that feel free...

Thomas
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,264
Messages
2,571,323
Members
48,006
Latest member
TerranceCo

Latest Threads

Top