What to use for installation?

E

Eugene Morozov

Hello!
I wrote a crossplatform Glade/GTK+ application for learning foreign
languages (it is called Snakememory but doesn't have site in English yet).

Currently it works from the directory where it was unpacked. But I need
installation script that will compile and install translations, install
application on Unix or create installation bundle for Windows.

I have a three choices: distutils, make and scons. I think that
distutils can't handle many tasks and make will require installing the
whole cygwin for packaging on Windows, so the only remaining choice is
scons.

But I want to know other opinions before going with scons. What is the
best tool for installing python applications?
Eugene
 
R

Roger Binns

Eugene Morozov said:
But I want to know other opinions before going with scons. What is the best tool for installing python applications?

The tools you mention are actually more applicable to Python packages
in that they install the code into an existing Python install on
the machine.

For applications most people want standalone programs that the user
doesn't know or care is written in Python and doesn't have any
dependencies on things already installed on their system.

In that case you can use a Freezing tool which will package up
an executable stub, your code, the interpretter dll/so and other
binary/source modules you may use (eg GTK in your case). This
will give you a single directory with no dependcies that will
run your program.

Then you can use an installer that is platform specific. For
example on Windows you'll want the program to install from a
setup.exe and be in the Add/Remove programs list in the Contol
Panel. On Linux you'll want it added to KDE/Gnome user menus.

For freezing tools, there are:

- cx-Freeze (Windows, Linux, Mac?)
- py2exe (Windows)
- McMillan Installer (Windows, Linux, Mac?)
- py2app (Mac)
- bundlebuilder (Mac)

For installers, there are:

- InnoSetup (Windows)
- NSIS (Windows)
- rpm/dpkg (Linux)
- dimg tools (Mac)
- EPM (Linux/Unix)

IMHO the best of breed are

Windows: py2exe/InnoSetup
Linux: cx-Freeze/rpm
Mac: py2app/dimg

Other people use other combinations and have their favourites.

You can see some slides from a talk I did a while back that
goes into a little more detail, as well as giving an idea
of how much "code"/templates were written for the bitpim
project to use a freezer/installer on Windows, Linux and Mac.

http://bitpim.org/papers/baypiggies/

(See slides 18 thru 22).

Roger
 

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,212
Messages
2,571,102
Members
47,698
Latest member
TerraT521

Latest Threads

Top