By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,857 Members | 1,816 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,857 IT Pros & Developers. It's quick & easy.

McMillan Installer vs. Python 2.4

P: n/a
3 quick questions for the newsgroup:

1. Does anyone know why McMillan Installer 5b5 does not work with
Python 2.4 under Linux (works with Python 2.3 just fine), and how to
fix it?

2. Will anyone be picking up the maintenance and development ball for
McMillan Installer?

3. Is there another, better-supported solution for distributing a
Python executable under Linux/Unix/AIX? A single-file solution (ala
Installer's '--onefile') is a requirement for me.

4. Installer supports the use of upx for those platforms that support
it. AIX does not. Does anyone have any other solutions for
compressing a Python executable which still leaves that executable
executable? Believe it or not, the biggest impediment to my using
Python at work is the enormous size of the executable. (Installing
Python itself on the target platforms is not allowed).

OK, that was 4.

Jul 18 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
mrmak...@cox.net wrote:
1. Does anyone know why McMillan Installer 5b5 does not work with
Python 2.4 under Linux (works with Python 2.3 just fine), and how to
fix it?
I expect so.
2. Will anyone be picking up the maintenance and development ball for
McMillan Installer?
There was a 6a2 release for Linux and Windows, but I don't think
anyone's developing it further.
3. Is there another, better-supported solution for distributing a
Python executable under Linux/Unix/AIX? A single-file solution (ala
Installer's '--onefile') is a requirement for me.
cx_Freeze is good, but makes multiple files, if you need single file
you could just make the files into an RPM or simply tar.bz2 them up,
then your installation is just one file, extracted to many (still just
one directory....)
4. Installer supports the use of upx for those platforms that support
it. AIX does not. Does anyone have any other solutions for
compressing a Python executable which still leaves that executable
executable? Believe it or not, the biggest impediment to my using
Python at work is the enormous size of the executable. (Installing
Python itself on the target platforms is not allowed).


I don't particularly like the way UPX works, it uses more memory in the
end anyway, and disk space is cheaper. You could use strip and python
--OO to remove docstrings etc.

I've written a couple of pretty complex GUI applications and have never
seen them build to anything more than about 7Mb for wxPython or about
3Mb for PyQt.

You could just distribute the source and use movpy as the interpreter.

Jul 18 '05 #2

P: n/a
mr******@cox.net wrote:
1. Does anyone know why McMillan Installer 5b5 does not work with
Python 2.4 under Linux (works with Python 2.3 just fine), and how to
fix it?
No, sorry. I know for a fact that it does not work out of the box for Windows
because of the prebuilt executables (run*.exe) which are compiled with VC6 and
must be recompiled with VC7.1. After that, it works for me with Python 2.4.
2. Will anyone be picking up the maintenance and development ball for
McMillan Installer?


I hope someone eventually will. Meanwhile, we got a python24.dll which is 1.8Mb
so that the py2exe guys are happy. Sigh. I hope this wasn't done only for the
sake of py2exe though: it would be just wrong to hurt everybody for the sake of
those installers that can't do a single executable.
--
Giovanni Bajo
Jul 18 '05 #3

P: n/a
I've done further research, and now have McMillan Installer working for
Python 2.4, so I'd like to share what I found.

First, I got the latest Installer, 6a2, from the Vaults of Parnassus.
This version is listed as the 'Windows' version. This means two
things: The .py files are sprinkled with DOS-style line endings
(CR/LF) and file endings (^Z), and the runtime support files for Linux
are not prebuilt.

First, you must strip the DOS stuff out of some of the files. The ones
I did that solved various syntax errors was rthooks.dat and
_mountzlib.py. Why only these files, I don't know.

Second, you must go to the support subdirectory and do 'python Make.py'
followed by 'make'. This builds the proper runtime support stuff.

Once I did this, Installer worked with Python 2.4 like a champ. This
gives me the single-file executable I need (NOTE: I do not mean a
single file that I can use to install my app on the target platform, I
mean that my app is a single, executable file.) And with the use of
the '--upx' option, Installer runs upx on my executable, creating a
compressed, self-executing file.

This takes care of the management roadblock of "Your script is only a
couple K in length, but you turn in into an executable and it takes HOW
MANY meg?!!? Well, Python is obviously too inefficient for our use."

At least, on some platforms. Sadly, no upx on our main delivery
platform, which is AIX. Does anyone know of a better executable-packer
for AIX than gzexe?

Jul 18 '05 #4

P: n/a
mr******@cox.net wrote:

[snip]
First, I got the latest Installer, 6a2, from the Vaults of Parnassus.
This version is listed as the 'Windows' version. This means two
things: The .py files are sprinkled with DOS-style line endings
(CR/LF) and file endings (^Z), and the runtime support files for Linux are not prebuilt.
I have a Linux version of 6a2 at
http://www.the-jedi.co.uk/downloads/installer/

Could you build that using 2.4 and see if it works (I'm in the middle
of moving house, so don't have my Linux box to hand)?

It should work out of the box I guess, as I assume the Linux version
already has the carriage returns fixed. I'm not sure what else is
different, but it seems to be about half the size of the Windows one
(also on my website).

[...] This takes care of the management roadblock of "Your script is only a
couple K in length, but you turn in into an executable and it takes HOW MANY meg?!!? Well, Python is obviously too inefficient for our use."
That's unfortunate. Did they never see a C++ program statically linked
with a few libs that comes to something huge? How big are you typically
looking at?

Maybe you need to explain to them your binary (including interpreter)
is the equivalent of shipping the 20Mb JVM with a Java program, or the
200Mb CLR with a C# program!
At least, on some platforms. Sadly, no upx on our main delivery
platform, which is AIX. Does anyone know of a better executable-packer for AIX than gzexe?


Don't forget the --strip option in Installer, and call it using 'python
-OO', that will take it down a few Kbytes....

Jul 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.