Python 2.x for Debian --------------------- This is Python 2.x packaged for Debian. This document contains information specific to the Debian packages of Python 2.x. [TODO: This document is not yet up-to-date with the packages.] Currently, it features those two main topics: 1. Release notes for the Debian packages: 2. Notes for developers using the Debian Python packages: Release notes and documentation from the upstream package are installed in /usr/share/doc/python/. Up-to-date information regarding Python on Debian systems is also available as http://www.debian.org/~flight/python/. There's a mailing list for discussion of issues related to Python on Debian systems: debian-python@lists.debian.org. The list is not intended for general Python problems, but as a forum for maintainers of Python-related packages and interested third parties. 1. Release notes for the Debian packages: Results of the regression test: ------------------------------ The package does successfully run the regression tests for all included modules. Seven packages are skipped since they are platform-dependent and can't be used with Linux. Noteworthy changes since the 1.4 packages: ----------------------------------------- - Threading support enabled. - Tkinter for Tcl/Tk 8.x. - New package python-zlib. - The dbmmodule was dropped. Use bsddb instead. gdbmmodule is provided for compatibility's sake. - python-elisp adheres to the new emacs add-on policy; it now depends on emacsen. python-elisp probably won't work correctly with emacs19. Refer to /usr/doc/python-elisp/ for more information. - Remember that 1.5 has dropped the `ni' interface in favor of a generic `packages' concept. - Python 1.5 regression test as additional package python-regrtest. You don't need to install this package unless you don't trust the maintainer ;-). - once again, modified upstream's compileall.py and py_compile.py. Now they support compilation of optimized byte-code (.pyo) for use with "python -O", removal of .pyc and .pyo files where the .py source files are missing (-d) and finally the fake of a installation directory when .py files have to be compiled out of place for later installation in a different directory (-i destdir, used in ./debian/rules). - The Debian packages for python 1.4 do call /usr/lib/python1.4/compileall.py in their postrm script. Therefore I had to provide a link from /usr/lib/python1.5/compileall.py, otherwise the old packages won't be removed completely. THIS IS A SILLY HACK! 2. Notes for developers using the Debian python packages: Embedding python: ---------------- The files for embedding python resp. extending the python interpreter are included in the python-dev package. With the configuration in the Debian GNU/Linux packages of python 1.5, you will want to use something like -I/usr/include/python1.5 (e.g. for config.h) -L/usr/lib/python1.5/config -lpython1.5 (... -lpthread) (also for Makefile.pre.in, Setup etc.) Makefile.pre.in automatically gets that right. Note that unlike 1.4, python 1.5 has only one library, libpython1.5.a. Currently, there's no shared version of libpython. Future version of the Debian python packages will support this. Python extension packages: ------------------------- According to www.python.org/doc/essays/packages.html, extension packages should only install into /usr/lib/python1.5/site-packages/ (resp. /usr/lib/site-python/ for packages that are definitely version independent). No extension package should install files directly into /usr/lib/python1.5/. But according to the FSSTND, only Debian packages are allowed to use /usr/lib/python1.5/. Therefore Debian Python additionally by default searches a second hierarchy in /usr/local/lib/. These directories take precedence over their equivalents in /usr/lib/. a) Locally installed Python add-ons /usr/local/lib/python1.5/site-packages/ /usr/local/lib/site-python/ (version-independent modules) b) Python add-ons packaged for Debian /usr/lib/python1.5/site-packages/ /usr/lib/site-python/ (version-independent modules) Note that no package must install files directly into /usr/lib/python1.5/ or /usr/local/lib/python1.5/. Only the site-packages directory is allowed for third-party extensions. Use of the new `package' scheme is strongly encouraged. The `ni' interface is obsolete in python 1.5. Header files for extensions go into /usr/include/python1.5/. Installing extensions for local use only: ---------------------------------------- Most extensions use Python's Makefile.pre.in. Note that Makefile.pre.in by default will install files into /usr/lib/, not into /usr/local/lib/, which is not allowed for local extensions. You'll have to change the Makefile accordingly. Most times, "make prefix=/usr/local install" will work. Packaging python extensions for Debian: -------------------------------------- Maintainers of Python extension packages should read README.maintainers. 03/09/98 Gregor Hoffleit Last change: 07/16/1999