Differences between revisions 1 and 29 (spanning 28 versions)
Revision 1 as of 2002-07-16 09:34:53
Size: 55
Editor: grossetto
Comment:
Revision 29 as of 2012-04-19 06:27:40
Size: 3161
Editor: techtonik
Comment: whitespace, give NSIS a name
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Tools for distributing Python software:
 * DistUtils
= Distribution Utilities =

General distribution of Python code is typically done using the [[Distutils]] package from the standard library which can produce source and binary distributions which depend on end-users having Python already installed on their computer (with Python Eggs being a form of software distribution provided by the [[Distutils]] derivative, [[setuptools]]). Such source and binary software distributions are frequently available as operating system packages (a more general form of the term "package" referring not just to code but also to documentation, resources and other things) and can be installed using the package management infrastructure employed by various operating systems - see "System Package Distribution" below.

== Stand-alone Applications ==

The following projects support the production stand-alone executables.

 * [[http://pypi.python.org/pypi/bbfreeze/|bbfreeze]] - create standalone executables from python scripts
   * [[http://pypi.python.org/pypi/esky/|esky]] - an auto-update framework built on top of bbfreeze
 * [[cx Freeze]]
 * [[http://effbot.org/zone/exemaker.htm|ExeMaker]] - creates EXE loaders for Python scripts (for Windows)
 * [[Freeze]] & [[Py2Exe|py2exe]] - building executables for Unix & Windows
 * [[http://davidf.sjsoft.com/mirrors/mcmillan-inc/install1.html|McMillan's Installer]] - includes notes about (other) distributing solutions
 * [[http://undefined.org/python/#py2app|py2app]] - converts Python scripts into executable Mac OS X applications
 * [[http://www.pyinstaller.org/|PyInstaller]] - derived from !McMillan's installer

== Installers ==

Installers are sometimes needed to wrap up the output of freeze tools into packages:

 * [[http://www.jrsoftware.org/isinfo.php|Inno Setup]] (Windows)
 * [[http://nsis.sourceforge.net/Main_Page|NSIS]] (Windows)
 * MacPython BundleBuilder (Mac OS X)

== See also ==
 
 * [[buildout]]
 * [[deployment]] (an answer to the frequently asked question on the topic)
## * Thinki's Thinki:PythonInstallers. - This link is dead.
## * [http://web.archive.org/web/20030621135837/http://www.mcmillan-inc.com/install1.html McMillan's page] about (other) distributing solutions.

== System Package Distribution ==

Although [[Distutils|Distutils]] supports the production of some system packages, other tools exist to make such packages:

 * [[http://www.showmedo.com/videos/video?name=linuxJensMakingDeb&fromSeriesID=37|ShowMeDo video]] (and wiki) on how to create a Debian package (.deb) from a python program (.py). This is useful if you want to distribute to Debian based Linux Systems like [[http://www.debian.org|Debian]] or [[http://www.ubuntulinux.com|Ubuntu]].
 * [[https://wiki.ubuntu.com/PackagingGuide/Python|PackagingGuide/Python]] in the Ubuntu Wiki

== Distribution Using Virtualisation ==

It is possible to distribute entire systems which can then be run under virtualisation or as "live CD" environments. Some solutions attempt to incorporate such approaches in a way which is transparent to the user:

 * [[http://www.openlina.com/|LINA]] - running Linux-based applications on other systems

Distribution Utilities

General distribution of Python code is typically done using the Distutils package from the standard library which can produce source and binary distributions which depend on end-users having Python already installed on their computer (with Python Eggs being a form of software distribution provided by the Distutils derivative, setuptools). Such source and binary software distributions are frequently available as operating system packages (a more general form of the term "package" referring not just to code but also to documentation, resources and other things) and can be installed using the package management infrastructure employed by various operating systems - see "System Package Distribution" below.

Stand-alone Applications

The following projects support the production stand-alone executables.

  • bbfreeze - create standalone executables from python scripts

    • esky - an auto-update framework built on top of bbfreeze

  • cx Freeze

  • ExeMaker - creates EXE loaders for Python scripts (for Windows)

  • Freeze & py2exe - building executables for Unix & Windows

  • McMillan's Installer - includes notes about (other) distributing solutions

  • py2app - converts Python scripts into executable Mac OS X applications

  • PyInstaller - derived from McMillan's installer

Installers

Installers are sometimes needed to wrap up the output of freeze tools into packages:

See also

System Package Distribution

Although Distutils supports the production of some system packages, other tools exist to make such packages:

Distribution Using Virtualisation

It is possible to distribute entire systems which can then be run under virtualisation or as "live CD" environments. Some solutions attempt to incorporate such approaches in a way which is transparent to the user:

  • LINA - running Linux-based applications on other systems

DistributionUtilities (last edited 2024-01-04 11:20:11 by MarcAndreLemburg)

Unable to edit the page? See the FrontPage for instructions.