McMillan Installer vs. Python 2.4

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • mrmakent@cox.net

    #1

    McMillan Installer vs. Python 2.4

    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.

  • Simon John

    #2
    Re: McMillan Installer vs. Python 2.4

    mrmak...@cox.ne t wrote:
    [color=blue]
    > 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?[/color]

    I expect so.
    [color=blue]
    > 2. Will anyone be picking up the maintenance and development ball for
    > McMillan Installer?[/color]

    There was a 6a2 release for Linux and Windows, but I don't think
    anyone's developing it further.
    [color=blue]
    > 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.[/color]

    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....)
    [color=blue]
    > 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).[/color]

    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.

    Comment

    • Giovanni Bajo

      #3
      Re: McMillan Installer vs. Python 2.4

      mrmakent@cox.ne t wrote:
      [color=blue]
      > 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?[/color]

      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.
      [color=blue]
      > 2. Will anyone be picking up the maintenance and development ball for
      > McMillan Installer?[/color]

      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


      Comment

      • mrmakent@cox.net

        #4
        Re: McMillan Installer vs. Python 2.4

        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?

        Comment

        • Simon John

          #5
          Re: McMillan Installer vs. Python 2.4

          mrmakent@cox.ne t wrote:

          [snip][color=blue]
          > 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[/color]
          Linux[color=blue]
          > are not prebuilt.[/color]

          I have a Linux version of 6a2 at


          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).

          [...][color=blue]
          > 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[/color]
          HOW[color=blue]
          > MANY meg?!!? Well, Python is obviously too inefficient for our use."[/color]

          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!
          [color=blue]
          > At least, on some platforms. Sadly, no upx on our main delivery
          > platform, which is AIX. Does anyone know of a better[/color]
          executable-packer[color=blue]
          > for AIX than gzexe?[/color]

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

          Comment

          Working...