bundling python with application

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Randall Smith

    bundling python with application

    I'd like to bundle Python with my app, which will be targeted at Linux,
    Windows and Mac. Discussions I've found about this tend to lead to
    py2exe, freeze, etc, but I'd like to do something rather simple and am
    seeking advice.

    What I'd like to do is just copy the standard libraries and
    executable(s) and adjust the paths in the environment variables. The
    libraries and executable(s) would reside in the same directory with the
    application so that you could run the application without needing to
    install it. The directory might look like this:

    $ ls

    start-app.sh
    app_lib/
    python_lib/
    python_bin/


    start-app.sh would look like this:

    #!/bin/sh

    PATH="python_bi n:$PATH" PYTHON_HOME="./python_lib" python app_lib/start.py

    Of course, there would be a start-app.bat for Windows.

    The PATH is altered to make sure the right python interpreter is found
    and PYTHON_HOME makes sure the right (local) libraries are found.

    Can this be done?

    Randall

  • Diez B. Roggisch

    #2
    Re: bundling python with application

    Randall Smith schrieb:
    I'd like to bundle Python with my app, which will be targeted at Linux,
    Windows and Mac. Discussions I've found about this tend to lead to
    py2exe, freeze, etc, but I'd like to do something rather simple and am
    seeking advice.
    >
    What I'd like to do is just copy the standard libraries and
    executable(s) and adjust the paths in the environment variables. The
    libraries and executable(s) would reside in the same directory with the
    application so that you could run the application without needing to
    install it. The directory might look like this:
    >
    $ ls
    >
    start-app.sh
    app_lib/
    python_lib/
    python_bin/
    >
    >
    start-app.sh would look like this:
    >
    #!/bin/sh
    >
    PATH="python_bi n:$PATH" PYTHON_HOME="./python_lib" python app_lib/start.py
    >
    Of course, there would be a start-app.bat for Windows.
    >
    The PATH is altered to make sure the right python interpreter is found
    and PYTHON_HOME makes sure the right (local) libraries are found.
    >
    Can this be done?
    It might be doable (virtualenv shows it works, you might consider taking
    a look into it), but I would advise against it. py2exe and py2app for
    example do a great job to provide a way to distribute software in a way
    the respective target OS (and their users) are expecting it.

    For example, OSX uses so-called "applicatio n bundles" which py2app
    (guess where the name comes from...) produces for you. Not using them
    might cripple you, because e.g. GUI-stuff isn't working properly (or
    will show an arbitrary icon in the dock, instead of one you chose).

    Why do you insist on re-inventing a wheel that's rolling fine?

    Diez

    Comment

    Working...