Distributing wxPython based Application

Hi Folks,

We need to distribute a wxPython (GUI) application
that must run on multiple versions of Linux.

We are also limited to using Python 2.5.4 and
wxPython 2.8.9.

Most of the target users of this application do not
want to install all of the different python

Modules (such as pyGDB and pySvn) that are required
for the application, and do they want to run

the application from source (they want to start up
an application, like they start up eclipse,)

what is the best method to provide a single distribution?

For C, I would just statically link my code, so that
it could run on all of the platforms that we

are required to support, but I keep hearing that
wxPython/wxWidget cannot be statically linked

with Python and/or other python code.

We were planning on using cxFreeze 4.01 to generate
the statically linked code (for plain python

command-line applications, this is suppose to work
just fine.)

You can either reply to this list, or send me a private
e-mail if you have a suggestion.

The user base is currently Linux, but we hope to
expand to other *NIX like operating systems in

the future.

Thanks,

Larry Hauch

Intel Corporation

e-mail: larry.hauch@intel.com

Hi Larry,

Hi Folks,

We need to distribute a wxPython (GUI) application that must run on multiple versions of Linux.

We are also limited to using Python 2.5.4 and wxPython 2.8.9.

Most of the target users of this application do not want to install all of the different python

Modules (such as pyGDB and pySvn) that are required for the application, and do they want to run

the application from source (they want to start up an application, like they start up eclipse,)

what is the best method to provide a single distribution?

For C, I would just statically link my code, so that it could run on all of the platforms that we

are required to support, but I keep hearing that wxPython/wxWidget cannot be statically linked

with Python and/or other python code.

We were planning on using cxFreeze 4.01 to generate the statically linked code (for plain python

command-line applications, this is suppose to work just fine.)

You can either reply to this list, or send me a private e-mail if you have a suggestion.

The user base is currently Linux, but we hope to expand to other *NIX like operating systems in

the future.

Thanks,

**Larry Hauch**

Intel Corporation

e-mail: larry.hauch@intel.com <mailto:larry.hauch@intel.com>

You might take a look at PyInstaller. I'm pretty sure it does Linux "packages". I think zc.buildout might also be a solution. Here's link to the latter: zc.buildout · PyPI

···

-------------------
Mike Driscoll

Blog: http://blog.pythonlibrary.org
Python Extension Building Network: http://www.pythonlibrary.org

__________ Information from ESET NOD32 Antivirus, version of virus signature database 4014 (20090416) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

I use bbfreeze (bbfreeze · PyPI) to package my
application for Linux. We don't have many linux users, but it appears to
be working for them.

There's a mailing list at http://groups.google.com/group/bbfreeze-users,
and I see from the most recent message that Andrea's GUI2Exe program
(http://code.google.com/p/gui2exe/) supports bbfreeze.

Hope that helps,

Simon

···

-----Original Message-----
From:
wxpython-users-bounces+simon.king=motorola.com@lists.wxwidgets
.org
[mailto:wxpython-users-bounces+simon.king=motorola.com@lists.w
xwidgets.org] On Behalf Of Hauch, Larry
Sent: 17 April 2009 00:22
To: wxpython-users@lists.wxwidgets.org
Subject: [wxpython-users] Distributing wxPython based Application

Hi Folks,

We need to distribute a wxPython (GUI) application that must
run on multiple versions of Linux.

We are also limited to using Python 2.5.4 and wxPython 2.8.9.

Most of the target users of this application do not want to
install all of the different python

Modules (such as pyGDB and pySvn) that are required for the
application, and do they want to run

the application from source (they want to start up an
application, like they start up eclipse,)

what is the best method to provide a single distribution?

For C, I would just statically link my code, so that it could
run on all of the platforms that we

are required to support, but I keep hearing that
wxPython/wxWidget cannot be statically linked

with Python and/or other python code.

We were planning on using cxFreeze 4.01 to generate the
statically linked code (for plain python

command-line applications, this is suppose to work just fine.)

You can either reply to this list, or send me a private
e-mail if you have a suggestion.

The user base is currently Linux, but we hope to expand to
other *NIX like operating systems in

the future.

Thanks,

Larry Hauch

Intel Corporation

e-mail: larry.hauch@intel.com

My 2c:

DeVIDE (see Computer Graphics and Visualization - BSD open
source) includes several large libraries (wxPython, VTK, ITK, numpy,
matplotlib) and is distributed on Windows 32 and Linux 32 and 64. The
thing is self-contained in that you can download, untar and go, even
without any python installed on your system. I've been using
pyInstaller to do this, you can check the SVN repo in directory
devide/devide/installer/ for everything needed to do this.

I have to add that for flexibility reasons (it's a research system),
I'm planning to change over to rather distributing a complete
self-contained Python distribution by the next release, i.e. no more
PyInstaller. PyInstaller works well, and it has even made it possible
to distribute DeVIDE binaries that contain source that can be modified
(!!), but a Python distribution including DeVIDE would be even more
flexible.

HTH,
Charl

···

2009/4/17 Hauch, Larry <larry.hauch@intel.com>:

We need to distribute a wxPython (GUI) application that must run on multiple
versions of Linux.

We are also limited to using Python 2.5.4 and wxPython 2.8.9.

the application from source (they want to start up an application, like they
start up eclipse,)

what is the best method to provide a single distribution?

Hauch, Larry wrote:

We need to distribute a wxPython (GUI) application that must run on multiple versions of Linux.

multiple versions is always tricky, depending on your definition of
multiple. This is true of C, etc. apps too.

what is the best method to provide a single distribution?

It seems pyInstaller is one of the most popular on Linux. bbFreeze is a
newer one worth a look, too.

cxFreeze is another option, though I'm a bit confused when it says that
the python must be compatible with the system python.

are required to support, but I keep hearing that wxPython/wxWidget cannot be statically linked

with Python and/or other python code.

python is not compiled to object code -- it's not linked, in that sense,
in any way.

What pyInstaller, cxFreeze, bbFreeze, py2ex, py2app all do is bundle up
  the python interpreter, your code, and all the various packages your
app needs into one package, so that everything needed is all self
contained and easy to install and use.

We were planning on using cxFreeze 4.01 to generate the statically linked code (for plain python
command-line applications, this is suppose to work just fine.)

wxPython doesn't change this at all -- Every python app needs various
modules, packages to run.

You can either reply to this list, or send me a private e-mail if you have a suggestion.

write a ultra simple wxPython app, and point cxFReeze, PyInstaller,and
bbfreeze at it, and see what you get. Then get on the mailing list for
one or more of these tools, and ask whatever questions arise.

I think the trouble you are most likely to encounter is actually the
same as you'd get with trying to distribute any kind of binary app for
Linux: Python itself, and wxPython, will, by default, be dynamically
linked against various system libs -- those system libs will have to be
there for your app to run. If you want to support a wide variety of
distros, you'll need to figure out how to either link against most libs
statically, or distribute the system libs with your bundle, too.

I suspect that folks on the various mailing lists will be able to
provide advise on this.

-Chris

···

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

Hi Larry,

We need to distribute a wxPython (GUI) application that must run on multiple
versions of Linux.

We are also limited to using Python 2.5.4 and wxPython 2.8.9.

Task Coach is an open source task manager application developed in
Python and wxPython for which Debian packages, RPMs, Mac OS X packages
(dmg) and Windows installer (using py2exe and Innosetup) are made
available. See http://www.taskcoach.org/download.html

Building these distributions is completely automated. Check out the
Makefile (Task Coach download | SourceForge.net),
the make.py script
(Task Coach download | SourceForge.net)
and the bdist_rpm_fedora.py and bdis_deb.py
(Task Coach download | SourceForge.net)
distutils commands.

HTH, Frank

···

2009/4/17 Hauch, Larry <larry.hauch@intel.com>: