I l@ve RuBoard Previous Section Next Section

B.1 Unix

Python's largest user base is most likely Unix users these days, although the number of Windows users is growing steadily. There are several distributions available for Unix. The standard method of obtaining Python is to download the source distribution (http://www.python.org/download/download_source.html ), and configure, build, and install Python yourself. There was an effort a while back to keep at the Python web site a set of precompiled binaries of Python for most of the major Unix platforms, but this effort has mostly been dropped, because there was no way to make it maintainable; there are too many different versions of Unix and too many ways to configure Python for each one.

We haven't mentioned configurations of Python in this book; that's because we've mostly covered the most standard part of the Python distribution. Someone who downloads the source distribution, however, will soon notice a references to a file called Setup in the Modules directory. This file allows you to configure which modules are compiled, either for static or for dynamic linking. The set of available optional modules changes with each release and can be augmented by downloading third-party extensions.

There is an exception to the "no binary distributions" rule, and that is for Linux. Most versions of Linux come with Python already installed, and some use it extensively in their configuration management system. The version on the Linux distributions may not be the latest version available. Oliver Andrich maintains a set of RPMs (which are packages in a standard format for Red Hat Linux) of the latest distributions of Python, including the most popular extensions. These are available at http://www.python.org/download/download_linux.html.

B.1.1 Unix-Specific Extensions

Several extensions are available on most if not all Unix versions. These include:

B.1.1.1 Standard distribution

There are interfaces to most well-established services on Unix. For example, there is a pwd module for interacting with the password file, a grp module for manipulating the Unix group database, as well as modules allowing one to interface to the crypt library functions (crypt), the dbm/ndbm/gdbm database libraries (dbm and gdbm), the tty I/O control calls (termios), the file descriptor I/O interface (fcntl), a module for measuring and controlling system resources (resources), a module for interfacing with the system logging tools (syslog), a wrapper module around the popen call that makes interfacing with shell commands easier (commands), and finally a module that gives access to the stat system call for finding such things as modification times of files and the like (stat).

The standard library also includes modules that operate on specific Unix flavors, such as SGI and SunOS/Solaris:

B.1.1.2 SGI-specific extensions

On Silicon Graphics systems, the standard distribution includes modules for interfacing with the AL audio library (al and AL), the CD library (cd), the FORMS Library by Mark Overmas (fl, flp and FL), the font manager (fm ), the old IRIX GL library (gl, GL and DEVICE),[A] and the imglib image file format (imgfile).

[A] The OpenGL interface is supported cross-platform by a set of modules currently maintained by one of your authors (David Ascher), and is available at http://starship.python.net/~da/PyOpenGL/. It currently works on SGI systems as well as other Unix platforms and Windows, and can be linked with either OpenGL or the compatible Mesa toolkit.

B.1.1.3 SunOS-specific extensions

On SunOS/Solaris, the standard distribution includes one module, sunaudiodev, that allows an interface to the audio device.

B.1.1.4 Other Unix resources

Many modules have been published for support of various Unix tools or have been tested on Unix. These include interfaces to audio subsystems, scanners, and cameras, the X Window System interface and its layered toolkits, and many others; search the Python web site if you're looking for a specific extension you think might have been interfaced already.

I l@ve RuBoard Previous Section Next Section