1 This is Python version 2.3 beta 1
2 =================================
4 Copyright (c) 2001, 2002, 2003 Python Software Foundation.
7 Copyright (c) 2000 BeOpen.com.
10 Copyright (c) 1995-2001 Corporation for National Research Initiatives.
13 Copyright (c) 1991-1995 Stichting Mathematisch Centrum.
20 See the file "LICENSE" for information on the history of this
21 software, terms & conditions for usage, and a DISCLAIMER OF ALL
24 This Python distribution contains no GNU General Public Licensed
25 (GPLed) code so it may be used in proprietary projects just like prior
26 Python distributions. There are interfaces to some GNU code but these
27 are entirely optional.
29 All trademarks referenced herein are property of their respective
33 What's new in this release?
34 ---------------------------
36 See the file "Misc/NEWS".
38 If you don't read instructions
39 ------------------------------
41 Congratulations on getting this far. :-)
43 To start building right away (on UNIX): type "./configure" in the
44 current directory and when it finishes, type "make". This creates an
45 executable "./python"; to install in /usr/local, first do "su root"
46 and then "make install".
48 The section `Build instructions' below is still recommended reading,
49 especially the part on customizing Modules/Setup.
52 What is Python anyway?
53 ----------------------
55 Python is an interpreted object-oriented programming language suitable
56 (amongst other uses) for distributed application development,
57 scripting, numeric computing and system testing. Python is often
58 compared to Tcl, Perl, Java, JavaScript, Visual Basic or Scheme. To
59 find out more about what Python can do for you, point your browser to
60 http://www.python.org/.
63 How do I learn Python?
64 ----------------------
66 The official tutorial is still a good place to start; see
67 http://www.python.org/doc/ for online and downloadable versions, as
68 well as a list of other introductions, and reference documentation.
70 There's a quickly growing set of books on Python. See
71 http://www.python.org/psa/bookstore/ for a list.
77 All documentation is provided online in a variety of formats. In
78 order of importance for new users: Tutorial, Library Reference,
79 Language Reference, Extending & Embedding, and the Python/C API. The
80 Library Reference is especially of immense value since much of
81 Python's power is described there, including the built-in data types
84 All documentation is also available online at the Python web site
85 (http://www.python.org/doc/, see below). It is available online for
86 occasional reference, or can be downloaded in many formats for faster
87 access. The documentation is available in HTML, PostScript, PDF, and
88 LaTeX formats; the LaTeX version is primarily for documentation
89 authors, translators, and people with special formatting requirements.
91 The best documentation for the new (in Python 2.2) type/class
92 unification features is Guido's tutorial introduction, at
94 http://www.python.org/2.2.1/descrintro.html
100 New Python releases and related technologies are published at
101 http://www.python.org/. Come visit us!
103 There's also a Python community web site at
104 http://starship.python.net/.
107 Newsgroups and Mailing Lists
108 ----------------------------
110 Read comp.lang.python, a high-volume discussion newsgroup about
111 Python, or comp.lang.python.announce, a low-volume moderated newsgroup
112 for Python-related announcements. These are also accessible as
113 mailing lists: see http://www.python.org/psa/MailingLists.html for an
114 overview of the many Python-related mailing lists.
116 Archives are accessible via the Google Groups usenet archive; see
117 http://groups.google.com/. The mailing lists are also archived, see
118 http://www.python.org/psa/MailingLists.html for details.
124 To report or search for bugs, please use the Python Bug
125 Tracker at http://sourceforge.net/bugs/?group_id=5470.
128 Patches and contributions
129 -------------------------
131 To submit a patch or other contribution, please use the Python Patch
132 Manager at http://sourceforge.net/patch/?group_id=5470. Guidelines
133 for patch submission may be found at http://www.python.org/patches/.
135 If you have a proposal to change Python, it's best to submit a Python
136 Enhancement Proposal (PEP) first. All current PEPs, as well as
137 guidelines for submitting a new PEP, are listed at
138 http://python.sourceforge.net/peps/.
144 For help, if you can't find it in the manuals or on the web site, it's
145 best to post to the comp.lang.python or the Python mailing list (see
146 above). If you specifically don't want to involve the newsgroup or
147 mailing list, send questions to help@python.org (a group of volunteers
148 who answer questions as they can). The newsgroup is the most
149 efficient way to ask public questions.
155 Before you can build Python, you must first configure it.
156 Fortunately, the configuration and build process has been automated
157 for Unix and Linux installations, so all you usually have to do is
158 type a few commands and sit back. There are some platforms where
159 things are not quite as smooth; see the platform specific notes below.
160 If you want to build for multiple platforms sharing the same source
161 tree, see the section on VPATH below.
163 Start by running the script "./configure", which determines your
164 system configuration and creates the Makefile. (It takes a minute or
165 two -- please be patient!) You may want to pass options to the
166 configure script -- see the section below on configuration options and
167 variables. When it's done, you are ready to run make.
169 To build Python, you normally type "make" in the toplevel directory.
170 If you have changed the configuration, the Makefile may have to be
171 rebuilt. In this case you may have to run make again to correctly
172 build your desired target. The interpreter executable is built in the
175 Once you have built a Python interpreter, see the subsections below on
176 testing and installation. If you run into trouble, see the next
179 Previous versions of Python used a manual configuration process that
180 involved editing the file Modules/Setup. While this file still exists
181 and manual configuration is still supported, it is rarely needed any
182 more: almost all modules are automatically built as appropriate under
183 guidance of the setup.py script, which is run by Make after the
184 interpreter has been built.
190 See also the platform specific notes in the next section.
192 If you run into other trouble, see section 3 of the FAQ
193 (http://www.python.org/cgi-bin/faqw.py or
194 http://www.python.org/doc/FAQ.html) for hints on what can go wrong,
197 If you rerun the configure script with different options, remove all
198 object files by running "make clean" before rebuilding. Believe it or
199 not, "make clean" sometimes helps to clean up other inexplicable
200 problems as well. Try it before sending in a bug report!
202 If the configure script fails or doesn't seem to find things that
203 should be there, inspect the config.log file. When you fix a
204 configure problem, be sure to remove config.cache!
206 If you get a warning for every file about the -Olimit option being no
207 longer supported, you can ignore it. There's no foolproof way to know
208 whether this option is needed; all we can do is test whether it is
209 accepted without error. On some systems, e.g. older SGI compilers, it
210 is essential for performance (specifically when compiling ceval.c,
211 which has more basic blocks than the default limit of 1000). If the
212 warning bothers you, edit the Makefile to remove "-Olimit 1500" from
215 If you get failures in test_long, or sys.maxint gets set to -1, you
216 are probably experiencing compiler bugs, usually related to
217 optimization. This is a common problem with some versions of gcc, and
218 some vendor-supplied compilers, which can sometimes be worked around
219 by turning off optimization. Consider switching to stable versions
220 (gcc 2.95.2, or contact your vendor.)
222 From Python 2.0 onward, all Python C code is ANSI C. Compiling using
223 old K&R-C-only compilers is no longer possible. ANSI C compilers are
224 available for all modern systems, either in the form of updated
225 compilers from the vendor, or one of the free compilers (gcc).
230 A number of features are not supported in Python 2.3 anymore. Some
231 support code is still present, but will be removed in Python 2.4.
232 If you still need to use current Python versions on these systems,
233 please send a message to python-dev@python.org indicating that you
234 volunteer to support this system.
236 More specifically, the following systems are not supported any
242 - Irix 4 and --with-sgi-dl
244 - Systems defining __d6_pthread_create (configure.in)
245 - Systems defining PY_PTHREAD_D4, PY_PTHREAD_D6,
246 or PY_PTHREAD_D7 in thread_pthread.h
247 - Systems using --with-dl-dld
248 - Systems using --without-universal-newlines
250 Platform specific notes
251 -----------------------
253 (Some of these may no longer apply. If you find you can build Python
254 on these platforms without the special directions mentioned here,
255 submit a documentation bug report to SourceForge (see Bug Reports
256 above) so we can remove them!)
258 64-bit platforms: The modules audioop, imageop and rgbimg don't work.
259 The setup.py script disables them on 64-bit installations.
260 Don't try to enable them in the Modules/Setup file. They
261 contain code that is quite wordsize sensitive. (If you have a
264 Solaris: When using Sun's C compiler with threads, at least on Solaris
265 2.5.1, you need to add the "-mt" compiler option (the simplest
266 way is probably to specify the compiler with this option as
267 the "CC" environment variable when running the configure
270 When using GCC on Solaris, beware of binutils 2.13 or GCC
271 versions built using it. This mistakenly enables the
272 -zcombreloc option which creates broken shared libraries on
273 Solaris. binutils 2.12 works, and the binutils maintainers
274 are aware of the problem. Binutils 2.13.1 only partially
275 fixed things. It appears that 2.13.2 solves the problem
276 completely. This problem is known to occur with Solaris 2.7
277 and 2.8, but may also affect earlier and later versions of the
280 When the dynamic loader complains about errors finding shared
283 ld.so.1: ./python: fatal: libstdc++.so.5: open failed:
284 No such file or directory
286 you need to first make sure that the library is available on
287 your system. Then, you need to instruct the dynamic loader how
288 to find it. You can choose any of the following strategies:
290 1. When compiling Python, set LD_RUN_PATH to the directories
291 containing missing libraries.
292 2. When running Python, set LD_LIBRARY_PATH to these directories.
293 3. Use crle(8) to extend the search path of the loader.
294 4. Modify the installed GCC specs file, adding -R options into the
297 Linux: A problem with threads and fork() was tracked down to a bug in
298 the pthreads code in glibc version 2.0.5; glibc version 2.0.7
299 solves the problem. This causes the popen2 test to fail;
300 problem and solution reported by Pablo Bleyer.
302 Under Linux systems using GNU libc 2 (aka libc6), the crypt
303 module now needs the -lcrypt option. The setup.py script
304 takes care of this automatically.
306 Red Hat Linux: There's an executable /usr/bin/python which is Python
307 1.5.2 on most Red Hat installations; several key Red Hat tools
308 require this version. Python 2.1.x may be installed as
309 /usr/bin/python2. The Makefile installs Python as
310 /usr/local/bin/python, which may or may not take precedence
311 over /usr/bin/python, depending on how you have set up $PATH.
313 FreeBSD 3.x and probably platforms with NCurses that use libmytinfo or
314 similar: When using cursesmodule, the linking is not done in
315 the correct order with the defaults. Remove "-ltermcap" from
316 the readline entry in Setup, and use as curses entry: "curses
317 cursesmodule.c -lmytinfo -lncurses -ltermcap" - "mytinfo" (so
318 called on FreeBSD) should be the name of the auxiliary library
319 required on your platform. Normally, it would be linked
320 automatically, but not necessarily in the correct order.
322 BSDI: BSDI versions before 4.1 have known problems with threads,
323 which can cause strange errors in a number of modules (for
324 instance, the 'test_signal' test script will hang forever.)
325 Turning off threads (with --with-threads=no) or upgrading to
326 BSDI 4.1 solves this problem.
328 DEC Unix: Run configure with --with-dec-threads, or with
329 --with-threads=no if no threads are desired (threads are on by
330 default). When using GCC, it is possible to get an internal
331 compiler error if optimization is used. This was reported for
332 GCC 2.7.2.3 on selectmodule.c. Manually compile the affected
333 file without optimization to solve the problem.
335 DEC Ultrix: compile with GCC to avoid bugs in the native compiler,
336 and pass SHELL=/bin/sh5 to Make when installing.
338 AIX: A complete overhaul of the shared library support is now in
339 place. See Misc/AIX-NOTES for some notes on how it's done.
340 (The optimizer bug reported at this place in previous releases
341 has been worked around by a minimal code change.) If you get
342 errors about pthread_* functions, during compile or during
343 testing, try setting CC to a thread-safe (reentrant) compiler,
344 like "cc_r". For full C++ module support, set CC="xlC_r" (or
345 CC="xlC" without thread support).
347 HP-UX: When using threading, you may have to add -D_REENTRANT to the
348 OPT variable in the top-level Makefile; reported by Pat Knight,
349 this seems to make a difference (at least for HP-UX 10.20)
350 even though pyconfig.h defines it.
352 HP PA-RISC 2.0: A recent bug report (http://www.python.org/sf/546117)
353 suggests that the C compiler in this 64-bit system has bugs
354 in the optimizer that break Python. Compiling without
355 optimization solves the problems.
357 SCO: The following apply to SCO 3 only; Python builds out of the box
358 on SCO 5 (or so we've heard).
360 1) Everything works much better if you add -U__STDC__ to the
361 defs. This is because all the SCO header files are broken.
362 Anything that isn't mentioned in the C standard is
363 conditionally excluded when __STDC__ is defined.
365 2) Due to the U.S. export restrictions, SCO broke the crypt
366 stuff out into a separate library, libcrypt_i.a so the LIBS
369 LIBS=' -lsocket -lcrypt_i'
371 UnixWare: There are known bugs in the math library of the system, as well as
372 problems in the handling of threads (calling fork in one
373 thread may interrupt system calls in others). Therefore, test_math and
374 tests involving threads will fail until those problems are fixed.
376 SunOS 4.x: When using the SunPro C compiler, you may want to use the
377 '-Xa' option instead of '-Xc', to enable some needed non-ANSI
379 THIS SYSTEM IS NO LONGER SUPPORTED.
381 NeXT: Not supported anymore. Start with the MacOSX/Darwin code if you
384 QNX: Chris Herborth (chrish@qnx.com) writes:
385 configure works best if you use GNU bash; a port is available on
386 ftp.qnx.com in /usr/free. I used the following process to build,
387 test and install Python 1.5.x under QNX:
389 1) CONFIG_SHELL=/usr/local/bin/bash CC=cc RANLIB=: \
390 ./configure --verbose --without-gcc --with-libm=""
392 2) edit Modules/Setup to activate everything that makes sense for
393 your system... tested here at QNX with the following modules:
395 array, audioop, binascii, cPickle, cStringIO, cmath,
396 crypt, curses, errno, fcntl, gdbm, grp, imageop,
397 _locale, math, md5, new, operator, parser, pcre,
398 posix, pwd, readline, regex, reop, rgbimg, rotor,
399 select, signal, socket, soundex, strop, struct,
400 syslog, termios, time, timing, zlib, audioop, imageop, rgbimg
402 3) make SHELL=/usr/local/bin/bash
404 or, if you feel the need for speed:
406 make SHELL=/usr/local/bin/bash OPT="-5 -Oil+nrt"
408 4) make SHELL=/usr/local/bin/bash test
410 Using GNU readline 2.2 seems to behave strangely, but I
411 think that's a problem with my readline 2.2 port. :-\
413 5) make SHELL=/usr/local/bin/bash install
415 If you get SIGSEGVs while running Python (I haven't yet, but
416 I've only run small programs and the test cases), you're
417 probably running out of stack; the default 32k could be a
418 little tight. To increase the stack size, edit the Makefile
419 to read: LDFLAGS = -N 48k
421 BeOS: See Misc/BeOS-NOTES for notes about compiling/installing
422 Python on BeOS R3 or later. Note that only the PowerPC
423 platform is supported for R3; both PowerPC and x86 are
426 Cray T3E: Mark Hadfield (m.hadfield@niwa.co.nz) writes:
427 Python can be built satisfactorily on a Cray T3E but based on
428 my experience with the NIWA T3E (2002-05-22, version 2.2.1)
429 there are a few bugs and gotchas. For more information see a
430 thread on comp.lang.python in May 2002 entitled "Building
433 1) Use Cray's cc and not gcc. The latter was reported not to
434 work by Konrad Hinsen. It may work now, but it may not.
436 2) To set sys.platform to something sensible, pass the
437 following environment variable to the configure script:
441 2) Run configure with option "--enable-unicode=ucs4".
443 3) The Cray T3E does not support dynamic linking, so extension
444 modules have to be built by adding (or uncommenting) lines
445 in Modules/Setup. The minimum set of modules is
447 posix, new, _sre, unicodedata
449 On NIWA's vanilla T3E system the following have also been
450 included successfully:
452 _codecs, _locale, _socket, _symtable, _testcapi, _weakref
453 array, binascii, cmath, cPickle, crypt, cStringIO, dbm
454 errno, fcntl, grp, math, md5, operator, parser, pcre, pwd
455 regex, rotor, select, struct, strop, syslog, termios
456 time, timing, xreadlines
458 4) Once the python executable and library have been built, make
459 will execute setup.py, which will attempt to build remaining
460 extensions and link them dynamically. Each of these attempts
461 will fail but should not halt the make process. This is
464 5) Running "make test" uses a lot of resources and causes
465 problems on our system. You might want to try running tests
466 singly or in small groups.
468 SGI: SGI's standard "make" utility (/bin/make or /usr/bin/make)
469 does not check whether a command actually changed the file it
470 is supposed to build. This means that whenever you say "make"
471 it will redo the link step. The remedy is to use SGI's much
472 smarter "smake" utility (/usr/sbin/smake), or GNU make. If
473 you set the first line of the Makefile to #!/usr/sbin/smake
474 smake will be invoked by make (likewise for GNU make).
476 WARNING: There are bugs in the optimizer of some versions of
477 SGI's compilers that can cause bus errors or other strange
478 behavior, especially on numerical operations. To avoid this,
479 try building with "make OPT=".
481 OS/2: If you are running Warp3 or Warp4 and have IBM's VisualAge C/C++
482 compiler installed, just change into the pc\os2vacpp directory
483 and type NMAKE. Threading and sockets are supported by default
484 in the resulting binaries of PYTHON15.DLL and PYTHON.EXE.
486 Monterey (64-bit AIX): The current Monterey C compiler (Visual Age)
487 uses the OBJECT_MODE={32|64} environment variable to set the
488 compilation mode to either 32-bit or 64-bit (32-bit mode is
489 the default). Presumably you want 64-bit compilation mode for
490 this 64-bit OS. As a result you must first set OBJECT_MODE=64
491 in your environment before configuring (./configure) or
492 building (make) Python on Monterey.
494 Reliant UNIX: The thread support does not compile on Reliant UNIX, and
495 there is a (minor) problem in the configure script for that
496 platform as well. This should be resolved in time for a
499 MacOSX: The tests will crash on both 10.1 and 10.2 with SEGV in
500 test_re and test_sre due to the small default stack size. If
501 you set the stack size to 2048 before doing a "make test" the
502 failure can be avoided. If you're using the tcsh (the default
503 on OSX), or csh shells use "limit stacksize 2048" and for the
504 bash shell, use "ulimit -s 2048".
506 On naked Darwin you may want to add the configure option
507 "--disable-toolbox-glue" to disable the glue code for the Carbon
508 interface modules. The modules themselves are currently only built
509 if you add the --enable-framework option, see below.
511 On a clean OSX /usr/local does not exist. Do a
512 "sudo mkdir -m 775 /usr/local"
513 before you do a make install. It is probably not a good idea to
514 do "sudo make install" which installs everything as superuser,
515 as this may later cause problems when installing distutils-based
518 Some people have reported problems building Python after using "fink"
519 to install additional unix software. Disabling fink (remove all references
520 to /sw from your .profile or .login) should solve this.
522 You may want to try the configure option "--enable-framework"
523 which installs Python as a framework. The location can be set
524 as argument to the --enable-framework option (default
525 /Library/Frameworks). A framework install is probably needed if you
526 want to use any Aqua-based GUI toolkit (whether Tkinter, wxPython,
527 Carbon, Cocoa or anything else).
529 See Mac/OSX/README for more information on framework builds.
531 Cygwin: With recent (relative to the time of writing, 2001-12-19)
532 Cygwin installations, there are problems with the interaction
533 of dynamic linking and fork(). This manifests itself in build
534 failures during the execution of setup.py.
536 There are two workarounds that both enable Python (albeit
537 without threading support) to build and pass all tests on
538 NT/2000 (and most likely XP as well, though reports of testing
539 on XP would be appreciated).
543 (a) the band-aid fix is to link the _socket module statically
544 rather than dynamically (which is the default).
546 To do this, run "./configure --with-threads=no" including any
547 other options you need (--prefix, etc.). Then in Modules/Setup
551 #_socket socketmodule.c \
552 # -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
553 # -L$(SSL)/lib -lssl -lcrypto
555 and remove "local/" from the SSL variable. Finally, just run
558 (b) The "proper" fix is to rebase the Cygwin DLLs to prevent
559 base address conflicts. Details on how to do this can be
560 found in the following mail:
562 http://sources.redhat.com/ml/cygwin/2001-12/msg00894.html
564 It is hoped that a version of this solution will be
565 incorporated into the Cygwin distribution fairly soon.
567 Two additional problems:
569 (1) Threading support should still be disabled due to a known
570 bug in Cygwin pthreads that causes test_threadedtempfile to
573 (2) The _curses module does not build. This is a known
574 Cygwin ncurses problem that should be resolved the next time
575 that this package is released.
577 On older versions of Cygwin, test_poll may hang and test_strftime
580 The situation on 9X/Me is not accurately known at present.
581 Some time ago, there were reports that the following
582 regression tests failed:
588 Due to the test_select hang on 9X/Me, one should run the
589 regression test using the following:
591 make TESTOPTS='-l -x test_select' test
593 News regarding these platforms with more recent Cygwin
594 versions would be appreciated!
596 AtheOS: From Octavian Cerna <tavy at ylabs.com>:
600 Make sure you have shared versions of the libraries you
601 want to use with Python. You will have to compile them
602 yourself, or download precompiled packages.
604 Recommended libraries:
612 $ ./configure --prefix=/usr/python
615 Python is always built as a shared library, otherwise
616 dynamic loading would not work.
625 # pkgmanager -a /usr/python
630 - large file support: due to a stdio bug in glibc/libio,
631 access to large files may not work correctly. fseeko()
632 tries to seek to a negative offset. ftello() returns a
633 negative offset, it looks like a 32->64bit
634 sign-extension issue. The lowlevel functions (open,
636 - sockets: AF_UNIX is defined in the C library and in
637 Python, but not implemented in the system.
638 - select: poll is available in the C library, but does not
639 work (It does not return POLLNVAL for bad fds and
641 - posix: statvfs and fstatvfs always return ENOSYS.
643 - mmap: not yet implemented in AtheOS
644 - nis: broken (on an unconfigured system
645 yp_get_default_domain() returns junk instead of
647 - dl: dynamic loading doesn't work via dlopen()
648 - resource: getrimit and setrlimit are not yet
651 - if you are getting segmentation faults, you probably are
652 low on memory. AtheOS doesn't handle very well an
653 out-of-memory condition and simply SEGVs the process.
663 Configuring the bsddb and dbm modules
664 -------------------------------------
666 Beginning with Python version 2.3, the PyBsddb package
667 <http://pybsddb.sf.net/> was adopted into Python as the bsddb package,
668 exposing a set of package-level functions which provide
669 backwards-compatible behavior. Only versions 3.1 through 4.1 of
670 Sleepycat's libraries provide the necessary API, so older versions
671 aren't supported through this interface. The old bsddb module has
672 been retained as bsddb185, though it is not built by default. Users
673 wishing to use it will have to tweak Modules/Setup to build it. The
674 dbm module will still be built against the Sleepycat libraries if
675 other preferred alternatives (ndbm, gdbm) are not found, though
676 versions of the Sleepycat library prior to 3.1 are not considered.
682 As of Python 2.0, threads are enabled by default. If you wish to
683 compile without threads, or if your thread support is broken, pass the
684 --with-threads=no switch to configure. Unfortunately, on some
685 platforms, additional compiler and/or linker options are required for
686 threads to work properly. Below is a table of those options,
687 collected by Bill Janssen. We would love to automate this process
688 more, but the information below is not enough to write a patch for the
689 configure.in file, so manual intervention is required. If you patch
690 the configure.in file and are confident that the patch works, please
691 send in the patch. (Don't bother patching the configure script itself
692 -- it is regenerated each time the configure.in file changes.)
694 Compiler switches for threads
695 .............................
697 The definition of _REENTRANT should be configured automatically, if
698 that does not work on your system, or if _REENTRANT is defined
699 incorrectly, please report that as a bug.
701 OS/Compiler/threads Switches for use with threads
702 (POSIX is draft 10, DCE is draft 4) compile & link
704 SunOS 5.{1-5}/{gcc,SunPro cc}/solaris -mt
705 SunOS 5.5/{gcc,SunPro cc}/POSIX (nothing)
706 DEC OSF/1 3.x/cc/DCE -threads
707 (butenhof@zko.dec.com)
708 Digital UNIX 4.x/cc/DCE -threads
709 (butenhof@zko.dec.com)
710 Digital UNIX 4.x/cc/POSIX -pthread
711 (butenhof@zko.dec.com)
712 AIX 4.1.4/cc_r/d7 (nothing)
714 AIX 4.1.4/cc_r4/DCE (nothing)
716 IRIX 6.2/cc/POSIX (nothing)
720 Linker (ld) libraries and flags for threads
721 ...........................................
723 OS/threads Libraries/switches for use with threads
725 SunOS 5.{1-5}/solaris -lthread
726 SunOS 5.5/POSIX -lpthread
727 DEC OSF/1 3.x/DCE -lpthreads -lmach -lc_r -lc
728 (butenhof@zko.dec.com)
729 Digital UNIX 4.x/DCE -lpthreads -lpthread -lmach -lexc -lc
730 (butenhof@zko.dec.com)
731 Digital UNIX 4.x/POSIX -lpthread -lmach -lexc -lc
732 (butenhof@zko.dec.com)
733 AIX 4.1.4/{draft7,DCE} (nothing)
735 IRIX 6.2/POSIX -lpthread
736 (jph@emilia.engr.sgi.com)
739 Building a shared libpython
740 ---------------------------
742 Starting with Python 2.3, the majority of the interpreter can be built
743 into a shared library, which can then be used by the interpreter
744 executable, and by applications embedding Python. To enable this feature,
745 configure with --enable-shared.
747 If you do so, a static library will be created in addition to the
748 shared library, which uses the same object files as the shared library
749 In particular, the library likely object files using
750 position-independent code (PIC) if PIC flags are needed for the shared
754 Configuring additional built-in modules
755 ---------------------------------------
757 Starting with Python 2.1, the setup.py script at the top of the source
758 distribution attempts to detect which modules can be built and
759 automatically compiles them. Autodetection doesn't always work, so
760 you can still customize the configuration by editing the Modules/Setup
761 file; but this should be considered a last resort. The rest of this
762 section only applies if you decide to edit the Modules/Setup file.
763 You also need this to enable static linking of certain modules (which
764 is needed to enable profiling on some systems).
766 This file is initially copied from Setup.dist by the configure script;
767 if it does not exist yet, create it by copying Modules/Setup.dist
768 yourself (configure will never overwrite it). Never edit Setup.dist
769 -- always edit Setup or Setup.local (see below). Read the comments in
770 the file for information on what kind of edits are allowed. When you
771 have edited Setup in the Modules directory, the interpreter will
772 automatically be rebuilt the next time you run make (in the toplevel
775 Many useful modules can be built on any Unix system, but some optional
776 modules can't be reliably autodetected. Often the quickest way to
777 determine whether a particular module works or not is to see if it
778 will build: enable it in Setup, then if you get compilation or link
779 errors, disable it -- you're either missing support or need to adjust
780 the compilation and linking parameters for that module.
782 On SGI IRIX, there are modules that interface to many SGI specific
783 system libraries, e.g. the GL library and the audio hardware. These
784 modules will not be built by the setup.py script.
786 In addition to the file Setup, you can also edit the file Setup.local.
787 (the makesetup script processes both). You may find it more
788 convenient to edit Setup.local and leave Setup alone. Then, when
789 installing a new Python version, you can copy your old Setup.local
793 Setting the optimization/debugging options
794 ------------------------------------------
796 If you want or need to change the optimization/debugging options for
797 the C compiler, assign to the OPT variable on the toplevel make
798 command; e.g. "make OPT=-g" will build a debugging version of Python
799 on most platforms. The default is OPT=-O; a value for OPT in the
800 environment when the configure script is run overrides this default
801 (likewise for CC; and the initial value for LIBS is used as the base
802 set of libraries to link with).
804 When compiling with GCC, the default value of OPT will also include
805 the -Wall and -Wstrict-prototypes options.
807 Additional debugging code to help debug memory management problems can
808 be enabled by using the --with-pydebug option to the configure script.
814 If you want C profiling turned on, the easiest way is to run configure
815 with the CC environment variable to the necessary compiler
816 invocation. For example, on Linux, this works for profiling using
819 CC="gcc -pg" ./configure
821 Note that on Linux, gprof apparently does not work for shared
822 libraries. The Makefile/Setup mechanism can be used to compile and
823 link most extension modules statically.
829 To test the interpreter, type "make test" in the top-level directory.
830 This runs the test set twice (once with no compiled files, once with
831 the compiled files left by the previous test run). The test set
832 produces some output. You can generally ignore the messages about
833 skipped tests due to optional features which can't be imported.
834 If a message is printed about a failed test or a traceback or core
835 dump is produced, something is wrong. On some Linux systems (those
836 that are not yet using glibc 6), test_strftime fails due to a
837 non-standard implementation of strftime() in the C library. Please
838 ignore this, or upgrade to glibc version 6.
840 IMPORTANT: If the tests fail and you decide to mail a bug report,
841 *don't* include the output of "make test". It is useless. Run the
842 failing test manually, as follows:
844 ./python ./Lib/test/test_whatever.py
846 (substituting the top of the source tree for '.' if you built in a
847 different directory). This runs the test in verbose mode.
853 To install the Python binary, library modules, shared library modules
854 (see below), include files, configuration files, and the manual page,
859 This will install all platform-independent files in subdirectories of
860 the directory given with the --prefix option to configure or to the
861 `prefix' Make variable (default /usr/local). All binary and other
862 platform-specific files will be installed in subdirectories if the
863 directory given by --exec-prefix or the `exec_prefix' Make variable
864 (defaults to the --prefix directory) is given.
866 All subdirectories created will have Python's version number in their
867 name, e.g. the library modules are installed in
868 "/usr/local/lib/python<version>/" by default, where <version> is the
869 <major>.<minor> release number (e.g. "2.1"). The Python binary is
870 installed as "python<version>" and a hard link named "python" is
871 created. The only file not installed with a version number in its
872 name is the manual page, installed as "/usr/local/man/man1/python.1"
875 If you have a previous installation of Python that you don't
876 want to replace yet, use
880 This installs the same set of files as "make install" except it
881 doesn't create the hard link to "python<version>" named "python" and
882 it doesn't install the manual page at all.
884 The only thing you may have to install manually is the Python mode for
885 Emacs found in Misc/python-mode.el. (But then again, more recent
886 versions of Emacs may already have it.) Follow the instructions that
887 came with Emacs for installation of site-specific files.
889 On Mac OS X, if you have configured Python with --enable-framework, you
890 should use "make frameworkinstall" to do the installation. Note that this
891 installs the Python executable in a place that is not normally on your
892 PATH, you may want to set up a symlink in /usr/local/bin.
895 Configuration options and variables
896 -----------------------------------
898 Some special cases are handled by passing options to the configure
901 WARNING: if you rerun the configure script with different options, you
902 must run "make clean" before rebuilding. Exceptions to this rule:
903 after changing --prefix or --exec-prefix, all you need to do is remove
906 --with(out)-gcc: The configure script uses gcc (the GNU C compiler) if
907 it finds it. If you don't want this, or if this compiler is
908 installed but broken on your platform, pass the option
909 --without-gcc. You can also pass "CC=cc" (or whatever the
910 name of the proper C compiler is) in the environment, but the
911 advantage of using --without-gcc is that this option is
912 remembered by the config.status script for its --recheck
915 --prefix, --exec-prefix: If you want to install the binaries and the
916 Python library somewhere else than in /usr/local/{bin,lib},
917 you can pass the option --prefix=DIRECTORY; the interpreter
918 binary will be installed as DIRECTORY/bin/python and the
919 library files as DIRECTORY/lib/python/*. If you pass
920 --exec-prefix=DIRECTORY (as well) this overrides the
921 installation prefix for architecture-dependent files (like the
922 interpreter binary). Note that --prefix=DIRECTORY also
923 affects the default module search path (sys.path), when
924 Modules/config.c is compiled. Passing make the option
925 prefix=DIRECTORY (and/or exec_prefix=DIRECTORY) overrides the
926 prefix set at configuration time; this may be more convenient
927 than re-running the configure script if you change your mind
928 about the install prefix.
930 --with-readline: This option is no longer supported. GNU
931 readline is automatically enabled by setup.py when present.
933 --with-threads: On most Unix systems, you can now use multiple
934 threads, and support for this is enabled by default. To
935 disable this, pass --with-threads=no. If the library required
936 for threads lives in a peculiar place, you can use
937 --with-thread=DIRECTORY. IMPORTANT: run "make clean" after
938 changing (either enabling or disabling) this option, or you
939 will get link errors! Note: for DEC Unix use
940 --with-dec-threads instead.
942 --with-sgi-dl: On SGI IRIX 4, dynamic loading of extension modules is
943 supported by the "dl" library by Jack Jansen, which is
944 ftp'able from ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
945 This is enabled (after you've ftp'ed and compiled the dl
946 library) by passing --with-sgi-dl=DIRECTORY where DIRECTORY
947 is the absolute pathname of the dl library. (Don't bother on
948 IRIX 5, it already has dynamic linking using SunOS style
949 shared libraries.) THIS OPTION IS UNSUPPORTED.
951 --with-dl-dld: Dynamic loading of modules is rumored to be supported
952 on some other systems: VAX (Ultrix), Sun3 (SunOS 3.4), Sequent
953 Symmetry (Dynix), and Atari ST. This is done using a
954 combination of the GNU dynamic loading package
955 (ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z) and an
956 emulation of the SGI dl library mentioned above (the emulation
958 ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z). To
959 enable this, ftp and compile both libraries, then call
960 configure, passing it the option
961 --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY where DL_DIRECTORY is
962 the absolute pathname of the dl emulation library and
963 DLD_DIRECTORY is the absolute pathname of the GNU dld library.
964 (Don't bother on SunOS 4 or 5, they already have dynamic
965 linking using shared libraries.) THIS OPTION IS UNSUPPORTED.
967 --with-libm, --with-libc: It is possible to specify alternative
968 versions for the Math library (default -lm) and the C library
969 (default the empty string) using the options
970 --with-libm=STRING and --with-libc=STRING, respectively. For
971 example, if your system requires that you pass -lc_s to the C
972 compiler to use the shared C library, you can pass
973 --with-libc=-lc_s. These libraries are passed after all other
974 libraries, the C library last.
976 --with-libs='libs': Add 'libs' to the LIBS that the python interpreter
979 --with-cxx=<compiler>: Some C++ compilers require that main() is
980 compiled with the C++ if there is any C++ code in the application.
981 Specifically, g++ on a.out systems may require that to support
982 construction of global objects. With this option, the main() function
983 of Python will be compiled with <compiler>; use that only if you
984 plan to use C++ extension modules, and if your compiler requires
985 compilation of main() as a C++ program.
988 --with-pydebug: Enable additional debugging code to help track down
989 memory management problems. This allows printing a list of all
990 live objects when the interpreter terminates.
992 --with(out)-universal-newlines: enable reading of text files with
993 foreign newline convention (default: enabled). In other words,
994 any of \r, \n or \r\n is acceptable as end-of-line character.
995 If enabled import and execfile will automatically accept any newline
996 in files. Python code can open a file with open(file, 'U') to
997 read it in universal newline mode. THIS OPTION IS UNSUPPORTED.
1000 Building for multiple architectures (using the VPATH feature)
1001 -------------------------------------------------------------
1003 If your file system is shared between multiple architectures, it
1004 usually is not necessary to make copies of the sources for each
1005 architecture you want to support. If the make program supports the
1006 VPATH feature, you can create an empty build directory for each
1007 architecture, and in each directory run the configure script (on the
1008 appropriate machine with the appropriate options). This creates the
1009 necessary subdirectories and the Makefiles therein. The Makefiles
1010 contain a line VPATH=... which points to a directory containing the
1011 actual sources. (On SGI systems, use "smake -J1" instead of "make" if
1012 you use VPATH -- don't try gnumake.)
1014 For example, the following is all you need to build a minimal Python
1015 in /usr/tmp/python (assuming ~guido/src/python is the toplevel
1016 directory and you want to build in /usr/tmp/python):
1018 $ mkdir /usr/tmp/python
1019 $ cd /usr/tmp/python
1020 $ ~guido/src/python/configure
1026 Note that configure copies the original Setup file to the build
1027 directory if it finds no Setup file there. This means that you can
1028 edit the Setup file for each architecture independently. For this
1029 reason, subsequent changes to the original Setup file are not tracked
1030 automatically, as they might overwrite local changes. To force a copy
1031 of a changed original Setup file, delete the target Setup file. (The
1032 makesetup script supports multiple input files, so if you want to be
1033 fancy you can change the rules to create an empty Setup.local if it
1034 doesn't exist and run it with arguments $(srcdir)/Setup Setup.local;
1035 however this assumes that you only need to add modules.)
1038 Building on non-UNIX systems
1039 ----------------------------
1041 For Windows (2000/NT/ME/98/95), assuming you have MS VC++ 6.0, the
1042 project files are in PCbuild, the workspace is pcbuild.dsw. See
1043 PCbuild\readme.txt for detailed instructions.
1045 For other non-Unix Windows compilers, in particular Windows 3.1 and
1046 for OS/2, enter the directory "PC" and read the file "readme.txt".
1048 For the Mac, a separate source distribution will be made available,
1049 for use with the CodeWarrior compiler. If you are interested in Mac
1050 development, join the PythonMac Special Interest Group
1051 (http://www.python.org/sigs/pythonmac-sig/, or send email to
1052 pythonmac-sig-request@python.org).
1054 Of course, there are also binary distributions available for these
1055 platforms -- see http://www.python.org/.
1057 To port Python to a new non-UNIX system, you will have to fake the
1058 effect of running the configure script manually (for Mac and PC, this
1059 has already been done for you). A good start is to copy the file
1060 pyconfig.h.in to pyconfig.h and edit the latter to reflect the actual
1061 configuration of your system. Most symbols must simply be defined as
1062 1 only if the corresponding feature is present and can be left alone
1063 otherwise; however the *_t type symbols must be defined as some
1064 variant of int if they need to be defined at all.
1066 For all platforms, it's important that the build arrange to define the
1067 preprocessor symbol NDEBUG on the compiler command line in a release
1068 build of Python (else assert() calls remain in the code, hurting
1069 release-build performance). The Unix, Windows and Mac builds already
1073 Miscellaneous issues
1074 ====================
1079 There's an excellent Emacs editing mode for Python code; see the file
1080 Misc/python-mode.el. Originally written by the famous Tim Peters, it
1081 is now maintained by the equally famous Barry Warsaw (it's no
1082 coincidence that they now both work on the same team). The latest
1083 version, along with various other contributed Python-related Emacs
1084 goodies, is online at http://www.python.org/emacs/python-mode. And
1085 if you are planning to edit the Python C code, please pick up the
1086 latest version of CC Mode http://www.python.org/emacs/cc-mode; it
1087 contains a "python" style used throughout most of the Python C source
1088 files. (Newer versions of Emacs or XEmacs may already come with the
1089 latest version of python-mode.)
1095 The setup.py script automatically configures this when it detects a
1096 usable Tcl/Tk installation. This requires Tcl/Tk version 8.0 or
1099 For more Tkinter information, see the Tkinter Resource page:
1100 http://www.python.org/topics/tkinter/
1102 There are demos in the Demo/tkinter directory, in the subdirectories
1103 guido, matt and www (the matt and guido subdirectories have been
1104 overhauled to use more recent Tkinter coding conventions).
1106 Note that there's a Python module called "Tkinter" (capital T) which
1107 lives in Lib/lib-tk/Tkinter.py, and a C module called "_tkinter"
1108 (lower case t and leading underscore) which lives in
1109 Modules/_tkinter.c. Demos and normal Tk applications import only the
1110 Python Tkinter module -- only the latter imports the C _tkinter
1111 module. In order to find the C _tkinter module, it must be compiled
1112 and linked into the Python interpreter -- the setup.py script does
1113 this. In order to find the Python Tkinter module, sys.path must be
1114 set correctly -- normal installation takes care of this.
1117 Distribution structure
1118 ----------------------
1120 Most subdirectories have their own README files. Most files have
1123 .cvsignore Additional filename matching patterns for CVS to ignore
1124 BeOS/ Files specific to the BeOS port
1125 Demo/ Demonstration scripts, modules and programs
1126 Doc/ Documentation sources (LaTeX)
1127 Grammar/ Input for the parser generator
1128 Include/ Public header files
1129 LICENSE Licensing information
1130 Lib/ Python library modules
1131 Mac/ Macintosh specific resources
1132 Makefile.pre.in Source from which config.status creates the Makefile.pre
1133 Misc/ Miscellaneous useful files
1134 Modules/ Implementation of most built-in modules
1135 Objects/ Implementation of most built-in object types
1136 PC/ Files specific to PC ports (DOS, Windows, OS/2)
1137 PCbuild/ Build directory for Microsoft Visual C++
1138 Parser/ The parser and tokenizer and their input handling
1139 Python/ The byte-compiler and interpreter
1140 README The file you're reading now
1141 Tools/ Some useful programs written in Python
1142 pyconfig.h.in Source from which pyconfig.h is created (GNU autoheader output)
1143 configure Configuration shell script (GNU autoconf output)
1144 configure.in Configuration specification (input for GNU autoconf)
1145 install-sh Shell script used to install files
1147 The following files will (may) be created in the toplevel directory by
1148 the configuration and build processes:
1150 Makefile Build rules
1151 Makefile.pre Build rules before running Modules/makesetup
1152 buildno Keeps track of the build number
1153 config.cache Cache of configuration variables
1154 pyconfig.h Configuration header
1155 config.log Log from last configure run
1156 config.status Status from last run of the configure script
1157 getbuildinfo.o Object file from Modules/getbuildinfo.c
1158 libpython<version>.a The library archive
1159 python The executable interpreter
1160 tags, TAGS Tags files for vi and Emacs
1167 --Guido van Rossum (home page: http://www.python.org/~guido/)