Differences between revisions 27 and 31 (spanning 4 versions)
Revision 27 as of 2010-07-14 03:21:47
Size: 3222
Comment: changing section title "Current problems" to "Current regretful practices" and adding absence of -dbg packages
Revision 31 as of 2010-07-23 21:14:40
Size: 18
Comment: moved to Python
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:

== Python in Debian ==
Within the Debian project Python packages are maintained by individual developers and three main teams :

 * [[http://alioth.debian.org/projects/pkg-python|pkg-python]] maintains the Python compiler/interpreter package.

 * [[Teams/PythonModulesTeam|Debian Python Modules Team]] maintains some Python modules and extensions.

 * [[Teams/PythonAppsPackagingTeam|Python Applications Packaging Team]] maintains some Python applications.

There are also :
 * [[http://lists.debian.org/debian-python/recent|debian-python mailing list]] with all development discussions
 * [[irc://irc.oftc.net/debian-python|#debian-python]] [[IRC]] channel
 * [[DebianPythonFAQ|FAQ]]

== Supported Python Versions ==
Debian's latest release Lenny contains multiple Python versions: 2.5 (the default) and 2.4.

 * Python 3.1 is in [[DebianPts:python3.1|testing]]
 * Python 2.7 is in [[DebianPts:python2.7|experimental]]
 * Python 2.6 is in [[DebianPts:python2.6|testing]]
 * Python 2.5 is in [[DebianPts:python2.5|stable and testing]]
 * Python 2.4 is in [[DebianPts:python2.4|Lenny]]

== Debian Python Policy for Python developers ==
The Debian Python Policy describes conventions for packaging and distributing Python code in Debian.

The official text is located at http://www.debian.org/doc/packaging-manuals/python-policy/.

Feel free to ask any questions on debian-python@list.debian.org mailing list.

if you want to maintain a Python package, you have to know how the [[DebianDevelopment|Debian Development]] works.

== Deviations from upstream ==
Debian distributions modify upstream Python in a few ways that are important to understand. Of course, where at all possible, we try to minimize deviations from upstream, but here is an enumeration of the changes you might encounter on a Debian system (and derivatives, such as [[http://www.ubuntu.com|Ubuntu]]).

 * `dist-packages` instead of `site-packages`. Third party Python software installed from Debian packages goes into `dist-packages`, not `site-packages`. This is to reduce conflict between the system Python, and any [[http://www.python.org/download/|from-source Python build]] you might install manually.
 * The `python-setuptools` package installs the [[http://packages.python.org/distribute/|Distribute]] fork instead of the standard [[http://peak.telecommunity.com/|setuptools]].
 * The `python-virtualenv` also uses `distribute` by default, but can enable classic `setuptools` with an optional switch.

== Current regretful practices ==
 * Tests from distributed packages are usually stripped, so it is not possible for user to run them to ensure that package works as expected. This assumes that package maintainers run tests for all possible system configurations. This also makes troubleshooting harder.
 * -dbg packages are not commonly built/packaged for modules with extensions. GDB gets constantly improving allowing to easier debugging of Python modules, and extensions built using python*-dbg libraries are necessary to take advantage.

== See also ==
 * [[Python]]
 * [[IRC/debian-python/FAQ]]
 * [[DebianPython/Namespaces]]
 * [[DebianPython/Policy]]