blob: f173116c1f74776bb01b783a487320db92f556bb [file] [log] [blame]
Anthony Baxterbd432552005-01-25 12:43:571This is Python version 2.4
2==========================
Guido van Rossum91447632000-04-11 17:11:093
Anthony Baxterbd432552005-01-25 12:43:574Copyright (c) 2001, 2002, 2003, 2004, 2005 Python Software Foundation.
Guido van Rossum67345eb2001-01-18 14:51:125All rights reserved.
6
Guido van Rossumc07d5fa2000-09-01 22:50:027Copyright (c) 2000 BeOpen.com.
8All rights reserved.
9
Guido van Rossum23f7aed2001-04-12 20:53:3110Copyright (c) 1995-2001 Corporation for National Research Initiatives.
Guido van Rossumc07d5fa2000-09-01 22:50:0211All rights reserved.
12
Guido van Rossum6ebd2992000-09-03 04:47:4713Copyright (c) 1991-1995 Stichting Mathematisch Centrum.
Guido van Rossumc07d5fa2000-09-01 22:50:0214All rights reserved.
15
Guido van Rossum4f40c2d2000-09-05 16:46:2216
Guido van Rossumc07d5fa2000-09-01 22:50:0217License information
18-------------------
19
Guido van Rossum4f40c2d2000-09-05 16:46:2220See the file "LICENSE" for information on the history of this
21software, terms & conditions for usage, and a DISCLAIMER OF ALL
22WARRANTIES.
Guido van Rossumc07d5fa2000-09-01 22:50:0223
Guido van Rossum4f40c2d2000-09-05 16:46:2224This Python distribution contains no GNU General Public Licensed
25(GPLed) code so it may be used in proprietary projects just like prior
26Python distributions. There are interfaces to some GNU code but these
27are entirely optional.
28
29All trademarks referenced herein are property of their respective
30holders.
Guido van Rossum79808261997-12-11 18:01:4731
32
Guido van Rossum8d7d4ed1996-07-30 21:41:0733What's new in this release?
34---------------------------
Guido van Rossum3ff96dd1996-07-30 18:05:0435
Guido van Rossum67345eb2001-01-18 14:51:1236See the file "Misc/NEWS".
Guido van Rossum64773801997-11-26 17:07:0237
38If you don't read instructions
39------------------------------
40
41Congratulations on getting this far. :-)
42
43To start building right away (on UNIX): type "./configure" in the
Guido van Rossum2dcec0c2002-02-04 01:59:2344current directory and when it finishes, type "make". This creates an
45executable "./python"; to install in /usr/local, first do "su root"
46and then "make install".
47
Guido van Rossum59b0b602002-02-08 22:22:3548The section `Build instructions' below is still recommended reading,
Guido van Rossum2dcec0c2002-02-04 01:59:2349especially the part on customizing Modules/Setup.
Guido van Rossum3ff96dd1996-07-30 18:05:0450
51
Guido van Rossum91cb9d21995-04-10 11:47:3852What is Python anyway?
53----------------------
54
Guido van Rossum4f40c2d2000-09-05 16:46:2255Python is an interpreted object-oriented programming language suitable
56(amongst other uses) for distributed application development,
57scripting, numeric computing and system testing. Python is often
58compared to Tcl, Perl, Java, JavaScript, Visual Basic or Scheme. To
59find out more about what Python can do for you, point your browser to
Guido van Rossum67345eb2001-01-18 14:51:1260http://www.python.org/.
Guido van Rossum91cb9d21995-04-10 11:47:3861
62
Guido van Rossumf501b4e1996-10-25 14:32:4863How do I learn Python?
64----------------------
65
Fred Drake0e6444c1999-05-17 19:35:0166The official tutorial is still a good place to start; see
Guido van Rossumd0a42e22000-03-31 20:16:4567http://www.python.org/doc/ for online and downloadable versions, as
68well as a list of other introductions, and reference documentation.
Guido van Rossumf501b4e1996-10-25 14:32:4869
Guido van Rossumd0a42e22000-03-31 20:16:4570There's a quickly growing set of books on Python. See
Skip Montanaro932dab62003-06-12 14:04:3371http://www.python.org/cgi-bin/moinmoin/PythonBooks for a list.
Guido van Rossum8d90f9d1997-05-22 20:13:2572
Guido van Rossumf501b4e1996-10-25 14:32:4873
Guido van Rossumc07d5fa2000-09-01 22:50:0274Documentation
75-------------
Guido van Rossum91cb9d21995-04-10 11:47:3876
Guido van Rossumc07d5fa2000-09-01 22:50:0277All documentation is provided online in a variety of formats. In
78order of importance for new users: Tutorial, Library Reference,
Guido van Rossum4f40c2d2000-09-05 16:46:2279Language Reference, Extending & Embedding, and the Python/C API. The
80Library Reference is especially of immense value since much of
81Python's power is described there, including the built-in data types
82and functions!
Guido van Rossum91cb9d21995-04-10 11:47:3883
Guido van Rossum4f40c2d2000-09-05 16:46:2284All documentation is also available online at the Python web site
Guido van Rossumc07d5fa2000-09-01 22:50:0285(http://www.python.org/doc/, see below). It is available online for
Guido van Rossum4f40c2d2000-09-05 16:46:2286occasional reference, or can be downloaded in many formats for faster
Fred Drake6caae142000-10-25 17:51:0287access. The documentation is available in HTML, PostScript, PDF, and
88LaTeX formats; the LaTeX version is primarily for documentation
89authors, translators, and people with special formatting requirements.
Guido van Rossumc07d5fa2000-09-01 22:50:0290
Michael W. Hudsonbe6e0f42002-06-23 16:29:3691The best documentation for the new (in Python 2.2) type/class
92unification features is Guido's tutorial introduction, at
Barry Warsaw06557452001-12-14 20:47:1293
Guido van Rossum1c63a592002-07-09 18:44:0994 http://www.python.org/2.2.1/descrintro.html
Barry Warsaw06557452001-12-14 20:47:1295
Guido van Rossumc07d5fa2000-09-01 22:50:0296
Guido van Rossum4f40c2d2000-09-05 16:46:2297Web sites
98---------
Guido van Rossumc07d5fa2000-09-01 22:50:0299
Guido van Rossum4f40c2d2000-09-05 16:46:22100New Python releases and related technologies are published at
Guido van Rossum67345eb2001-01-18 14:51:12101http://www.python.org/. Come visit us!
Guido van Rossumc07d5fa2000-09-01 22:50:02102
Michael W. Hudsonbe6e0f42002-06-23 16:29:36103There's also a Python community web site at
104http://starship.python.net/.
Guido van Rossumc07d5fa2000-09-01 22:50:02105
Guido van Rossum4f40c2d2000-09-05 16:46:22106
107Newsgroups and Mailing Lists
108----------------------------
Guido van Rossumc07d5fa2000-09-01 22:50:02109
110Read comp.lang.python, a high-volume discussion newsgroup about
111Python, or comp.lang.python.announce, a low-volume moderated newsgroup
112for Python-related announcements. These are also accessible as
Guido van Rossum4f40c2d2000-09-05 16:46:22113mailing lists: see http://www.python.org/psa/MailingLists.html for an
114overview of the many Python-related mailing lists.
Guido van Rossumc07d5fa2000-09-01 22:50:02115
Michael W. Hudsonbe6e0f42002-06-23 16:29:36116Archives are accessible via the Google Groups usenet archive; see
117http://groups.google.com/. The mailing lists are also archived, see
Guido van Rossum4f40c2d2000-09-05 16:46:22118http://www.python.org/psa/MailingLists.html for details.
Guido van Rossumc07d5fa2000-09-01 22:50:02119
120
121Bug reports
122-----------
123
Guido van Rossum4f40c2d2000-09-05 16:46:22124To report or search for bugs, please use the Python Bug
125Tracker at http://sourceforge.net/bugs/?group_id=5470.
Guido van Rossumc07d5fa2000-09-01 22:50:02126
127
128Patches and contributions
129-------------------------
130
Fred Drake6caae142000-10-25 17:51:02131To submit a patch or other contribution, please use the Python Patch
132Manager at http://sourceforge.net/patch/?group_id=5470. Guidelines
133for patch submission may be found at http://www.python.org/patches/.
Guido van Rossumc07d5fa2000-09-01 22:50:02134
135If you have a proposal to change Python, it's best to submit a Python
136Enhancement Proposal (PEP) first. All current PEPs, as well as
Walter Dörwald7dc65d62003-02-02 23:37:05137guidelines for submitting a new PEP, are listed at
Guido van Rossumc07d5fa2000-09-01 22:50:02138http://python.sourceforge.net/peps/.
139
140
141Questions
142---------
143
144For help, if you can't find it in the manuals or on the web site, it's
145best to post to the comp.lang.python or the Python mailing list (see
146above). If you specifically don't want to involve the newsgroup or
Guido van Rossum67345eb2001-01-18 14:51:12147mailing list, send questions to help@python.org (a group of volunteers
148who answer questions as they can). The newsgroup is the most
149efficient way to ask public questions.
Guido van Rossum627b2d71993-12-24 10:39:16150
Guido van Rossum901454e2000-06-29 22:28:44151
Guido van Rossum433c8ad1994-08-01 12:07:07152Build instructions
Guido van Rossum91cb9d21995-04-10 11:47:38153==================
Guido van Rossum627b2d71993-12-24 10:39:16154
Guido van Rossum59b0b602002-02-08 22:22:35155Before you can build Python, you must first configure it.
156Fortunately, the configuration and build process has been automated
157for Unix and Linux installations, so all you usually have to do is
158type a few commands and sit back. There are some platforms where
159things are not quite as smooth; see the platform specific notes below.
160If you want to build for multiple platforms sharing the same source
161tree, see the section on VPATH below.
Guido van Rossum627b2d71993-12-24 10:39:16162
Guido van Rossum59b0b602002-02-08 22:22:35163Start by running the script "./configure", which determines your
164system configuration and creates the Makefile. (It takes a minute or
165two -- please be patient!) You may want to pass options to the
166configure script -- see the section below on configuration options and
167variables. When it's done, you are ready to run make.
Guido van Rossum6d9cc801996-08-01 17:31:22168
Guido van Rossum59b0b602002-02-08 22:22:35169To build Python, you normally type "make" in the toplevel directory.
170If you have changed the configuration, the Makefile may have to be
171rebuilt. In this case you may have to run make again to correctly
172build your desired target. The interpreter executable is built in the
173top level directory.
Guido van Rossum6d9cc801996-08-01 17:31:22174
Guido van Rossum4f40c2d2000-09-05 16:46:22175Once you have built a Python interpreter, see the subsections below on
Guido van Rossum59b0b602002-02-08 22:22:35176testing and installation. If you run into trouble, see the next
177section.
178
179Previous versions of Python used a manual configuration process that
180involved editing the file Modules/Setup. While this file still exists
181and manual configuration is still supported, it is rarely needed any
182more: almost all modules are automatically built as appropriate under
183guidance of the setup.py script, which is run by Make after the
184interpreter has been built.
Guido van Rossum627b2d71993-12-24 10:39:16185
Guido van Rossum0a516c91994-09-12 10:58:40186
Guido van Rossum91cb9d21995-04-10 11:47:38187Troubleshooting
188---------------
Guido van Rossum627b2d71993-12-24 10:39:16189
Guido van Rossum6d9cc801996-08-01 17:31:22190See also the platform specific notes in the next section.
191
Guido van Rossum49523691997-08-15 18:30:14192If you run into other trouble, see section 3 of the FAQ
Guido van Rossum901454e2000-06-29 22:28:44193(http://www.python.org/cgi-bin/faqw.py or
Guido van Rossum49523691997-08-15 18:30:14194http://www.python.org/doc/FAQ.html) for hints on what can go wrong,
195and how to fix it.
Guido van Rossum91cb9d21995-04-10 11:47:38196
Guido van Rossum6d9cc801996-08-01 17:31:22197If you rerun the configure script with different options, remove all
198object files by running "make clean" before rebuilding. Believe it or
199not, "make clean" sometimes helps to clean up other inexplicable
200problems as well. Try it before sending in a bug report!
201
Guido van Rossumd0fe8451996-08-26 03:02:37202If the configure script fails or doesn't seem to find things that
Guido van Rossumc0be2f51997-10-08 05:05:28203should be there, inspect the config.log file. When you fix a
204configure problem, be sure to remove config.cache!
205
206If you get a warning for every file about the -Olimit option being no
207longer supported, you can ignore it. There's no foolproof way to know
Guido van Rossum4f40c2d2000-09-05 16:46:22208whether this option is needed; all we can do is test whether it is
Guido van Rossumc0be2f51997-10-08 05:05:28209accepted without error. On some systems, e.g. older SGI compilers, it
210is essential for performance (specifically when compiling ceval.c,
211which has more basic blocks than the default limit of 1000). If the
212warning bothers you, edit the Makefile to remove "-Olimit 1500" from
213the OPT variable.
Guido van Rossumd0fe8451996-08-26 03:02:37214
Guido van Rossum7ac11532000-08-29 21:36:40215If you get failures in test_long, or sys.maxint gets set to -1, you
216are probably experiencing compiler bugs, usually related to
Martin v. Löwis9cea5f52002-11-15 07:28:05217optimization. This is a common problem with some versions of gcc, and
218some vendor-supplied compilers, which can sometimes be worked around
219by turning off optimization. Consider switching to stable versions
Anthony Baxtere9d719b2004-11-30 01:49:18220(gcc 2.95.2, gcc 3.x, or contact your vendor.)
Guido van Rossum7ac11532000-08-29 21:36:40221
222From Python 2.0 onward, all Python C code is ANSI C. Compiling using
223old K&R-C-only compilers is no longer possible. ANSI C compilers are
224available for all modern systems, either in the form of updated
Martin v. Löwis9cea5f52002-11-15 07:28:05225compilers from the vendor, or one of the free compilers (gcc).
Guido van Rossum91cb9d21995-04-10 11:47:38226
Martin v. Löwis779ffc02002-12-02 22:17:01227Unsupported systems
228-------------------
229
Anthony Baxter28b81a92004-12-13 17:09:28230A number of features have not been supported since Python 2.3, and
231the code to support them was removed in Python 2.4. If you still
232need to use current Python versions on these systems, please send
233a message to python-dev@python.org indicating that you volunteer
234to support this system. There is more detail on this in PEP 11.
Martin v. Löwis779ffc02002-12-02 22:17:01235
Anthony Baxter28b81a92004-12-13 17:09:28236More specifically, the following systems are no longer supported:
237
Martin v. Löwis779ffc02002-12-02 22:17:01238- SunOS 4
239- DYNIX
240- dgux
241- Minix
242- Irix 4 and --with-sgi-dl
243- Linux 1
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
Martin v. Löwis7e4cfcb2002-12-19 16:21:49248- Systems using --without-universal-newlines
Martin v. Löwis779ffc02002-12-02 22:17:01249
Guido van Rossum91cb9d21995-04-10 11:47:38250Platform specific notes
251-----------------------
252
Guido van Rossum0447a321995-10-08 01:22:33253(Some of these may no longer apply. If you find you can build Python
Guido van Rossum67345eb2001-01-18 14:51:12254on these platforms without the special directions mentioned here,
255submit a documentation bug report to SourceForge (see Bug Reports
256above) so we can remove them!)
Guido van Rossum91cb9d21995-04-10 11:47:38257
Skip Montanaro6dc4a8e2003-05-02 15:27:59258Unix platforms: If your vendor still ships (and you still use) Berkeley DB
259 1.85 you will need to edit Modules/Setup to build the bsddb185
260 module and add a line to sitecustomize.py which makes it the
261 default. In Modules/Setup a line like
262
263 bsddb185 bsddbmodule.c
264
265 should work. (You may need to add -I, -L or -l flags to direct the
266 compiler and linker to your include files and libraries.) You can
267 then force it to be the version people import by adding
268
269 import bsddb185 as bsddb
270
271 in sitecustomize.py.
272
Guido van Rossumc0be2f51997-10-08 05:05:2827364-bit platforms: The modules audioop, imageop and rgbimg don't work.
Guido van Rossum59b0b602002-02-08 22:22:35274 The setup.py script disables them on 64-bit installations.
Guido van Rossumc0be2f51997-10-08 05:05:28275 Don't try to enable them in the Modules/Setup file. They
276 contain code that is quite wordsize sensitive. (If you have a
Guido van Rossum4f40c2d2000-09-05 16:46:22277 fix, let us know!)
Guido van Rossumc0be2f51997-10-08 05:05:28278
Guido van Rossum4462e931997-01-22 21:00:32279Solaris: When using Sun's C compiler with threads, at least on Solaris
280 2.5.1, you need to add the "-mt" compiler option (the simplest
281 way is probably to specify the compiler with this option as
282 the "CC" environment variable when running the configure
283 script).
284
Guido van Rossum42992312002-09-23 14:02:18285 When using GCC on Solaris, beware of binutils 2.13 or GCC
286 versions built using it. This mistakenly enables the
287 -zcombreloc option which creates broken shared libraries on
288 Solaris. binutils 2.12 works, and the binutils maintainers
Skip Montanaro4de9cba2003-01-03 16:26:23289 are aware of the problem. Binutils 2.13.1 only partially
290 fixed things. It appears that 2.13.2 solves the problem
291 completely. This problem is known to occur with Solaris 2.7
292 and 2.8, but may also affect earlier and later versions of the
293 OS.
Guido van Rossum42992312002-09-23 14:02:18294
Martin v. Löwis9cea5f52002-11-15 07:28:05295 When the dynamic loader complains about errors finding shared
296 libraries, such as
297
298 ld.so.1: ./python: fatal: libstdc++.so.5: open failed:
299 No such file or directory
300
301 you need to first make sure that the library is available on
302 your system. Then, you need to instruct the dynamic loader how
Walter Dörwald7dc65d62003-02-02 23:37:05303 to find it. You can choose any of the following strategies:
Martin v. Löwis9cea5f52002-11-15 07:28:05304
305 1. When compiling Python, set LD_RUN_PATH to the directories
306 containing missing libraries.
307 2. When running Python, set LD_LIBRARY_PATH to these directories.
308 3. Use crle(8) to extend the search path of the loader.
309 4. Modify the installed GCC specs file, adding -R options into the
310 *link: section.
311
Guido van Rossum7ac11532000-08-29 21:36:40312Linux: A problem with threads and fork() was tracked down to a bug in
313 the pthreads code in glibc version 2.0.5; glibc version 2.0.7
314 solves the problem. This causes the popen2 test to fail;
315 problem and solution reported by Pablo Bleyer.
Guido van Rossum4462e931997-01-22 21:00:32316
Guido van Rossum7ac11532000-08-29 21:36:40317 Under Linux systems using GNU libc 2 (aka libc6), the crypt
Guido van Rossum59b0b602002-02-08 22:22:35318 module now needs the -lcrypt option. The setup.py script
319 takes care of this automatically.
Fred Drake61280911997-12-08 14:10:40320
Martin v. Löwis3efa04a2003-06-14 05:29:27321Red Hat Linux: Red Hat 9 built Python2.2 in UCS-4 mode and hacked
Anthony Baxter28b81a92004-12-13 17:09:28322 Tcl to support it. To compile Python with Tkinter on these
323 systems, you will need to pass --enable-unicode=ucs4 flag
324 to ./configure. This is no longer needed in Fedora Core.
Martin v. Löwis3efa04a2003-06-14 05:29:27325
Anthony Baxter28b81a92004-12-13 17:09:28326 On older Red Hat releases, there's an executable
327 /usr/bin/python which is Python 1.5.2 on most older Red Hat
328 installations; several key Red Hat tools require this version.
329 Python 2.1.x may be installed as /usr/bin/python2 (you can also
330 use "make altinstall" to install Python in a way that won't replace
331 the 'python' executable, but instead only create a "python2.4"
332 binary). The Makefile installs Python as /usr/local/bin/python,
333 which may or may not take precedence over /usr/bin/python, depending
334 on how you have set up $PATH.
Guido van Rossum2dcec0c2002-02-04 01:59:23335
Guido van Rossum59230501999-06-21 20:51:46336FreeBSD 3.x and probably platforms with NCurses that use libmytinfo or
337 similar: When using cursesmodule, the linking is not done in
338 the correct order with the defaults. Remove "-ltermcap" from
339 the readline entry in Setup, and use as curses entry: "curses
340 cursesmodule.c -lmytinfo -lncurses -ltermcap" - "mytinfo" (so
341 called on FreeBSD) should be the name of the auxiliary library
342 required on your platform. Normally, it would be linked
343 automatically, but not necessarily in the correct order.
344
Guido van Rossum7ac11532000-08-29 21:36:40345BSDI: BSDI versions before 4.1 have known problems with threads,
346 which can cause strange errors in a number of modules (for
347 instance, the 'test_signal' test script will hang forever.)
348 Turning off threads (with --with-threads=no) or upgrading to
349 BSDI 4.1 solves this problem.
350
351DEC Unix: Run configure with --with-dec-threads, or with
352 --with-threads=no if no threads are desired (threads are on by
353 default). When using GCC, it is possible to get an internal
354 compiler error if optimization is used. This was reported for
355 GCC 2.7.2.3 on selectmodule.c. Manually compile the affected
356 file without optimization to solve the problem.
Guido van Rossum8eca2c21996-02-14 18:37:46357
Guido van Rossume1cdb161999-04-10 16:04:07358DEC Ultrix: compile with GCC to avoid bugs in the native compiler,
359 and pass SHELL=/bin/sh5 to Make when installing.
360
Guido van Rossumd0fe8451996-08-26 03:02:37361AIX: A complete overhaul of the shared library support is now in
Guido van Rossum16e809e2001-04-16 02:07:08362 place. See Misc/AIX-NOTES for some notes on how it's done.
Guido van Rossum9ac9a261998-02-16 22:19:21363 (The optimizer bug reported at this place in previous releases
Thomas Wouters8ee06142001-02-15 11:45:29364 has been worked around by a minimal code change.) If you get
Fred Drake59518b02002-05-11 03:36:26365 errors about pthread_* functions, during compile or during
Thomas Wouters8ee06142001-02-15 11:45:29366 testing, try setting CC to a thread-safe (reentrant) compiler,
367 like "cc_r". For full C++ module support, set CC="xlC_r" (or
368 CC="xlC" without thread support).
Guido van Rossum91cb9d21995-04-10 11:47:38369
Anthony Baxter7c497472003-10-01 07:24:54370HP-UX: When using threading, you may have to add -D_REENTRANT to the
Guido van Rossum4f40c2d2000-09-05 16:46:22371 OPT variable in the top-level Makefile; reported by Pat Knight,
Guido van Rossum59a88f41999-04-12 18:16:09372 this seems to make a difference (at least for HP-UX 10.20)
Anthony Baxter7c497472003-10-01 07:24:54373 even though pyconfig.h defines it. This seems unnecessary when
374 using HP/UX 11 and later - threading seems to work "out of the
375 box".
376
377HP-UX ia64: When building on the ia64 (Itanium) platform using HP's
378 compiler, some experience has shown that the compiler's
379 optimiser produces a completely broken version of python
380 (see http://www.python.org/sf/814976). To work around this,
381 edit the Makefile and remove -O from the OPT line.
Guido van Rossum2094e041998-05-14 15:47:35382
Guido van Rossum4e1dd7d2002-04-23 13:06:07383HP PA-RISC 2.0: A recent bug report (http://www.python.org/sf/546117)
384 suggests that the C compiler in this 64-bit system has bugs
385 in the optimizer that break Python. Compiling without
386 optimization solves the problems.
387
Guido van Rossum4f40c2d2000-09-05 16:46:22388SCO: The following apply to SCO 3 only; Python builds out of the box
389 on SCO 5 (or so we've heard).
Guido van Rossuma16e2751998-04-13 20:14:05390
391 1) Everything works much better if you add -U__STDC__ to the
Guido van Rossum91cb9d21995-04-10 11:47:38392 defs. This is because all the SCO header files are broken.
Guido van Rossum64773801997-11-26 17:07:02393 Anything that isn't mentioned in the C standard is
Guido van Rossum91cb9d21995-04-10 11:47:38394 conditionally excluded when __STDC__ is defined.
395
396 2) Due to the U.S. export restrictions, SCO broke the crypt
397 stuff out into a separate library, libcrypt_i.a so the LIBS
398 needed be set to:
399
400 LIBS=' -lsocket -lcrypt_i'
401
Martin v. Löwis387c5472001-09-06 08:16:17402UnixWare: There are known bugs in the math library of the system, as well as
403 problems in the handling of threads (calling fork in one
404 thread may interrupt system calls in others). Therefore, test_math and
405 tests involving threads will fail until those problems are fixed.
406
Guido van Rossum7ac11532000-08-29 21:36:40407SunOS 4.x: When using the SunPro C compiler, you may want to use the
Guido van Rossum64773801997-11-26 17:07:02408 '-Xa' option instead of '-Xc', to enable some needed non-ANSI
409 Sunisms.
Martin v. Löwis779ffc02002-12-02 22:17:01410 THIS SYSTEM IS NO LONGER SUPPORTED.
Guido van Rossum91cb9d21995-04-10 11:47:38411
Jack Jansena39ef862001-08-19 21:17:03412NeXT: Not supported anymore. Start with the MacOSX/Darwin code if you
413 want to revive it.
Guido van Rossum6d9cc801996-08-01 17:31:22414
Guido van Rossumb7f454d1997-12-02 19:44:31415QNX: Chris Herborth (chrish@qnx.com) writes:
416 configure works best if you use GNU bash; a port is available on
417 ftp.qnx.com in /usr/free. I used the following process to build,
Guido van Rossumd4493421998-12-22 16:37:01418 test and install Python 1.5.x under QNX:
Guido van Rossumb7f454d1997-12-02 19:44:31419
Guido van Rossumec95c7b1998-08-04 17:59:56420 1) CONFIG_SHELL=/usr/local/bin/bash CC=cc RANLIB=: \
421 ./configure --verbose --without-gcc --with-libm=""
Guido van Rossumb7f454d1997-12-02 19:44:31422
Fred Drake80078492000-10-26 17:13:19423 2) edit Modules/Setup to activate everything that makes sense for
424 your system... tested here at QNX with the following modules:
Guido van Rossumb7f454d1997-12-02 19:44:31425
Guido van Rossum6fa49e21998-08-11 17:31:39426 array, audioop, binascii, cPickle, cStringIO, cmath,
427 crypt, curses, errno, fcntl, gdbm, grp, imageop,
428 _locale, math, md5, new, operator, parser, pcre,
429 posix, pwd, readline, regex, reop, rgbimg, rotor,
430 select, signal, socket, soundex, strop, struct,
Guido van Rossumd4493421998-12-22 16:37:01431 syslog, termios, time, timing, zlib, audioop, imageop, rgbimg
Guido van Rossumb7f454d1997-12-02 19:44:31432
Guido van Rossum16e809e2001-04-16 02:07:08433 3) make SHELL=/usr/local/bin/bash
434
Guido van Rossumec95c7b1998-08-04 17:59:56435 or, if you feel the need for speed:
Guido van Rossum16e809e2001-04-16 02:07:08436
Guido van Rossumec95c7b1998-08-04 17:59:56437 make SHELL=/usr/local/bin/bash OPT="-5 -Oil+nrt"
Guido van Rossumb7f454d1997-12-02 19:44:31438
Guido van Rossumec95c7b1998-08-04 17:59:56439 4) make SHELL=/usr/local/bin/bash test
440
Guido van Rossum6fa49e21998-08-11 17:31:39441 Using GNU readline 2.2 seems to behave strangely, but I
442 think that's a problem with my readline 2.2 port. :-\
Guido van Rossumec95c7b1998-08-04 17:59:56443
444 5) make SHELL=/usr/local/bin/bash install
Guido van Rossumb7f454d1997-12-02 19:44:31445
Guido van Rossum6fa49e21998-08-11 17:31:39446 If you get SIGSEGVs while running Python (I haven't yet, but
447 I've only run small programs and the test cases), you're
448 probably running out of stack; the default 32k could be a
449 little tight. To increase the stack size, edit the Makefile
Neil Schemenauer73f8ab22001-01-26 22:18:55450 to read: LDFLAGS = -N 48k
Guido van Rossum40d63581997-08-14 19:45:30451
Skip Montanaro2d98db62003-01-06 17:23:37452BeOS: See Misc/BeOS-NOTES for notes about compiling/installing
453 Python on BeOS R3 or later. Note that only the PowerPC
454 platform is supported for R3; both PowerPC and x86 are
455 supported for R4.
Guido van Rossumec95c7b1998-08-04 17:59:56456
Michael W. Hudson33876f52002-07-31 09:55:25457Cray T3E: Mark Hadfield (m.hadfield@niwa.co.nz) writes:
458 Python can be built satisfactorily on a Cray T3E but based on
459 my experience with the NIWA T3E (2002-05-22, version 2.2.1)
460 there are a few bugs and gotchas. For more information see a
461 thread on comp.lang.python in May 2002 entitled "Building
462 Python on Cray T3E".
463
464 1) Use Cray's cc and not gcc. The latter was reported not to
465 work by Konrad Hinsen. It may work now, but it may not.
466
467 2) To set sys.platform to something sensible, pass the
468 following environment variable to the configure script:
469
470 MACHDEP=unicosmk
471
472 2) Run configure with option "--enable-unicode=ucs4".
473
474 3) The Cray T3E does not support dynamic linking, so extension
475 modules have to be built by adding (or uncommenting) lines
476 in Modules/Setup. The minimum set of modules is
477
478 posix, new, _sre, unicodedata
479
480 On NIWA's vanilla T3E system the following have also been
481 included successfully:
482
483 _codecs, _locale, _socket, _symtable, _testcapi, _weakref
484 array, binascii, cmath, cPickle, crypt, cStringIO, dbm
485 errno, fcntl, grp, math, md5, operator, parser, pcre, pwd
486 regex, rotor, select, struct, strop, syslog, termios
487 time, timing, xreadlines
488
489 4) Once the python executable and library have been built, make
490 will execute setup.py, which will attempt to build remaining
491 extensions and link them dynamically. Each of these attempts
492 will fail but should not halt the make process. This is
493 normal.
494
495 5) Running "make test" uses a lot of resources and causes
496 problems on our system. You might want to try running tests
497 singly or in small groups.
Guido van Rossum1bf0bf41997-08-20 23:50:51498
Guido van Rossum0078aaf1997-08-21 03:05:11499SGI: SGI's standard "make" utility (/bin/make or /usr/bin/make)
500 does not check whether a command actually changed the file it
501 is supposed to build. This means that whenever you say "make"
502 it will redo the link step. The remedy is to use SGI's much
Guido van Rossum7be8ca02001-04-14 13:09:53503 smarter "smake" utility (/usr/sbin/smake), or GNU make. If
Guido van Rossumc0be2f51997-10-08 05:05:28504 you set the first line of the Makefile to #!/usr/sbin/smake
505 smake will be invoked by make (likewise for GNU make).
Guido van Rossum0078aaf1997-08-21 03:05:11506
Guido van Rossum7be8ca02001-04-14 13:09:53507 WARNING: There are bugs in the optimizer of some versions of
508 SGI's compilers that can cause bus errors or other strange
509 behavior, especially on numerical operations. To avoid this,
510 try building with "make OPT=".
Fred Drake0b5fb2b2000-09-29 17:45:05511
Guido van Rossum64773801997-11-26 17:07:02512OS/2: If you are running Warp3 or Warp4 and have IBM's VisualAge C/C++
513 compiler installed, just change into the pc\os2vacpp directory
514 and type NMAKE. Threading and sockets are supported by default
515 in the resulting binaries of PYTHON15.DLL and PYTHON.EXE.
516
Fred Drake36ed5602000-10-06 01:58:48517Monterey (64-bit AIX): The current Monterey C compiler (Visual Age)
518 uses the OBJECT_MODE={32|64} environment variable to set the
519 compilation mode to either 32-bit or 64-bit (32-bit mode is
520 the default). Presumably you want 64-bit compilation mode for
521 this 64-bit OS. As a result you must first set OBJECT_MODE=64
522 in your environment before configuring (./configure) or
523 building (make) Python on Monterey.
524
525Reliant UNIX: The thread support does not compile on Reliant UNIX, and
526 there is a (minor) problem in the configure script for that
527 platform as well. This should be resolved in time for a
528 future release.
Trent Mick635f6fb2000-08-23 21:33:05529
Barry Warsaw6a8557d2002-10-14 18:04:39530MacOSX: The tests will crash on both 10.1 and 10.2 with SEGV in
Barry Warsaw6e753642002-10-14 18:15:35531 test_re and test_sre due to the small default stack size. If
532 you set the stack size to 2048 before doing a "make test" the
533 failure can be avoided. If you're using the tcsh (the default
534 on OSX), or csh shells use "limit stacksize 2048" and for the
535 bash shell, use "ulimit -s 2048".
Barry Warsaw06557452001-12-14 20:47:12536
Jack Jansen6a77cf12001-12-06 21:49:02537 On naked Darwin you may want to add the configure option
Jack Jansen4c398fd2001-10-08 13:21:15538 "--disable-toolbox-glue" to disable the glue code for the Carbon
Jack Jansen6a77cf12001-12-06 21:49:02539 interface modules. The modules themselves are currently only built
540 if you add the --enable-framework option, see below.
Barry Warsaw06557452001-12-14 20:47:12541
542 On a clean OSX /usr/local does not exist. Do a
Jack Jansen61fec302002-01-04 15:59:57543 "sudo mkdir -m 775 /usr/local"
Jack Jansen84a01642002-08-04 21:19:55544 before you do a make install. It is probably not a good idea to
545 do "sudo make install" which installs everything as superuser,
546 as this may later cause problems when installing distutils-based
547 additions.
548
549 Some people have reported problems building Python after using "fink"
550 to install additional unix software. Disabling fink (remove all references
551 to /sw from your .profile or .login) should solve this.
Barry Warsaw06557452001-12-14 20:47:12552
553 You may want to try the configure option "--enable-framework"
554 which installs Python as a framework. The location can be set
555 as argument to the --enable-framework option (default
Jack Jansen84a01642002-08-04 21:19:55556 /Library/Frameworks). A framework install is probably needed if you
557 want to use any Aqua-based GUI toolkit (whether Tkinter, wxPython,
558 Carbon, Cocoa or anything else).
559
560 See Mac/OSX/README for more information on framework builds.
Fred Drakedabed752001-02-01 19:41:13561
Michael W. Hudson1c4523f2001-12-19 19:49:58562Cygwin: With recent (relative to the time of writing, 2001-12-19)
563 Cygwin installations, there are problems with the interaction
564 of dynamic linking and fork(). This manifests itself in build
565 failures during the execution of setup.py.
Tim Peters42fc7cc2001-04-04 18:35:19566
Michael W. Hudson1c4523f2001-12-19 19:49:58567 There are two workarounds that both enable Python (albeit
568 without threading support) to build and pass all tests on
569 NT/2000 (and most likely XP as well, though reports of testing
570 on XP would be appreciated).
Guido van Rossum16e809e2001-04-16 02:07:08571
Michael W. Hudson1c4523f2001-12-19 19:49:58572 The workarounds:
573
574 (a) the band-aid fix is to link the _socket module statically
575 rather than dynamically (which is the default).
576
577 To do this, run "./configure --with-threads=no" including any
578 other options you need (--prefix, etc.). Then in Modules/Setup
Walter Dörwald7dc65d62003-02-02 23:37:05579 uncomment the lines:
Tim Peters42fc7cc2001-04-04 18:35:19580
Michael W. Hudsonbe5ce182001-12-12 11:46:52581 #SSL=/usr/local/ssl
582 #_socket socketmodule.c \
583 # -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
584 # -L$(SSL)/lib -lssl -lcrypto
Guido van Rossum16e809e2001-04-16 02:07:08585
Michael W. Hudson1c4523f2001-12-19 19:49:58586 and remove "local/" from the SSL variable. Finally, just run
587 "make"!
Tim Peters42fc7cc2001-04-04 18:35:19588
Michael W. Hudsonb6554642001-12-19 22:09:09589 (b) The "proper" fix is to rebase the Cygwin DLLs to prevent
Michael W. Hudson1c4523f2001-12-19 19:49:58590 base address conflicts. Details on how to do this can be
591 found in the following mail:
592
593 http://sources.redhat.com/ml/cygwin/2001-12/msg00894.html
594
595 It is hoped that a version of this solution will be
Michael W. Hudsonb6554642001-12-19 22:09:09596 incorporated into the Cygwin distribution fairly soon.
Michael W. Hudson1c4523f2001-12-19 19:49:58597
598 Two additional problems:
599
600 (1) Threading support should still be disabled due to a known
601 bug in Cygwin pthreads that causes test_threadedtempfile to
602 hang.
603
Neal Norwitz4ebde092001-12-19 20:44:13604 (2) The _curses module does not build. This is a known
Michael W. Hudson1c4523f2001-12-19 19:49:58605 Cygwin ncurses problem that should be resolved the next time
606 that this package is released.
Guido van Rossum16e809e2001-04-16 02:07:08607
Michael W. Hudsonbe5ce182001-12-12 11:46:52608 On older versions of Cygwin, test_poll may hang and test_strftime
609 may fail.
Tim Peters42fc7cc2001-04-04 18:35:19610
Michael W. Hudson1c4523f2001-12-19 19:49:58611 The situation on 9X/Me is not accurately known at present.
612 Some time ago, there were reports that the following
613 regression tests failed:
Tim Peters42fc7cc2001-04-04 18:35:19614
615 test_pwd
616 test_select (hang)
617 test_socket
618
Michael W. Hudson1c4523f2001-12-19 19:49:58619 Due to the test_select hang on 9X/Me, one should run the
620 regression test using the following:
Tim Peters42fc7cc2001-04-04 18:35:19621
Michael W. Hudsonbe5ce182001-12-12 11:46:52622 make TESTOPTS='-l -x test_select' test
Tim Peters42fc7cc2001-04-04 18:35:19623
Michael W. Hudson1c4523f2001-12-19 19:49:58624 News regarding these platforms with more recent Cygwin
625 versions would be appreciated!
Guido van Rossum6d9cc801996-08-01 17:31:22626
Skip Montanaro56d83012003-01-04 04:05:51627AtheOS: From Octavian Cerna <tavy at ylabs.com>:
628
629 Before building:
630
631 Make sure you have shared versions of the libraries you
632 want to use with Python. You will have to compile them
633 yourself, or download precompiled packages.
634
635 Recommended libraries:
636
637 ncurses-4.2
638 readline-4.2a
639 zlib-1.1.4
640
641 Build:
642
643 $ ./configure --prefix=/usr/python
644 $ make
645
646 Python is always built as a shared library, otherwise
647 dynamic loading would not work.
648
649 Testing:
650
651 $ make test
652
653 Install:
654
655 # make install
656 # pkgmanager -a /usr/python
657
658
659 AtheOS issues:
660
661 - large file support: due to a stdio bug in glibc/libio,
662 access to large files may not work correctly. fseeko()
663 tries to seek to a negative offset. ftello() returns a
664 negative offset, it looks like a 32->64bit
665 sign-extension issue. The lowlevel functions (open,
666 lseek, etc) are OK.
667 - sockets: AF_UNIX is defined in the C library and in
668 Python, but not implemented in the system.
669 - select: poll is available in the C library, but does not
670 work (It does not return POLLNVAL for bad fds and
671 hangs).
672 - posix: statvfs and fstatvfs always return ENOSYS.
673 - disabled modules:
674 - mmap: not yet implemented in AtheOS
675 - nis: broken (on an unconfigured system
676 yp_get_default_domain() returns junk instead of
677 error)
678 - dl: dynamic loading doesn't work via dlopen()
679 - resource: getrimit and setrlimit are not yet
680 implemented
681
682 - if you are getting segmentation faults, you probably are
683 low on memory. AtheOS doesn't handle very well an
684 out-of-memory condition and simply SEGVs the process.
685
686 Tested on:
687
688 AtheOS-0.3.7
689 gcc-2.95
690 binutils-2.10
691 make-3.78
692
693
Skip Montanaro57454e52002-06-14 20:30:31694Configuring the bsddb and dbm modules
695-------------------------------------
696
Skip Montanaro56d83012003-01-04 04:05:51697Beginning with Python version 2.3, the PyBsddb package
698<http://pybsddb.sf.net/> was adopted into Python as the bsddb package,
699exposing a set of package-level functions which provide
700backwards-compatible behavior. Only versions 3.1 through 4.1 of
701Sleepycat's libraries provide the necessary API, so older versions
702aren't supported through this interface. The old bsddb module has
703been retained as bsddb185, though it is not built by default. Users
704wishing to use it will have to tweak Modules/Setup to build it. The
705dbm module will still be built against the Sleepycat libraries if
706other preferred alternatives (ndbm, gdbm) are not found, though
707versions of the Sleepycat library prior to 3.1 are not considered.
Guido van Rossum62d45c02002-12-02 15:49:13708
Skip Montanaro57454e52002-06-14 20:30:31709
Guido van Rossumdc8a3cb1998-05-12 15:29:18710Configuring threads
711-------------------
712
Guido van Rossum7ac11532000-08-29 21:36:40713As of Python 2.0, threads are enabled by default. If you wish to
714compile without threads, or if your thread support is broken, pass the
715--with-threads=no switch to configure. Unfortunately, on some
716platforms, additional compiler and/or linker options are required for
717threads to work properly. Below is a table of those options,
Guido van Rossum4f40c2d2000-09-05 16:46:22718collected by Bill Janssen. We would love to automate this process
Guido van Rossum7ac11532000-08-29 21:36:40719more, but the information below is not enough to write a patch for the
720configure.in file, so manual intervention is required. If you patch
721the configure.in file and are confident that the patch works, please
Guido van Rossum4f40c2d2000-09-05 16:46:22722send in the patch. (Don't bother patching the configure script itself
Walter Dörwald7dc65d62003-02-02 23:37:05723-- it is regenerated each time the configure.in file changes.)
Guido van Rossumdc8a3cb1998-05-12 15:29:18724
725Compiler switches for threads
726.............................
727
Martin v. Löwis1c24f9c2001-03-06 12:07:27728The definition of _REENTRANT should be configured automatically, if
729that does not work on your system, or if _REENTRANT is defined
730incorrectly, please report that as a bug.
Guido van Rossumdc8a3cb1998-05-12 15:29:18731
Martin v. Löwis1c24f9c2001-03-06 12:07:27732 OS/Compiler/threads Switches for use with threads
733 (POSIX is draft 10, DCE is draft 4) compile & link
734
735 SunOS 5.{1-5}/{gcc,SunPro cc}/solaris -mt
736 SunOS 5.5/{gcc,SunPro cc}/POSIX (nothing)
Guido van Rossum16e809e2001-04-16 02:07:08737 DEC OSF/1 3.x/cc/DCE -threads
Guido van Rossumdc8a3cb1998-05-12 15:29:18738 (butenhof@zko.dec.com)
Guido van Rossum16e809e2001-04-16 02:07:08739 Digital UNIX 4.x/cc/DCE -threads
Guido van Rossumdc8a3cb1998-05-12 15:29:18740 (butenhof@zko.dec.com)
Guido van Rossum16e809e2001-04-16 02:07:08741 Digital UNIX 4.x/cc/POSIX -pthread
Guido van Rossumdc8a3cb1998-05-12 15:29:18742 (butenhof@zko.dec.com)
Guido van Rossum16e809e2001-04-16 02:07:08743 AIX 4.1.4/cc_r/d7 (nothing)
Guido van Rossumdc8a3cb1998-05-12 15:29:18744 (buhrt@iquest.net)
Guido van Rossum16e809e2001-04-16 02:07:08745 AIX 4.1.4/cc_r4/DCE (nothing)
Guido van Rossumdc8a3cb1998-05-12 15:29:18746 (buhrt@iquest.net)
Guido van Rossum16e809e2001-04-16 02:07:08747 IRIX 6.2/cc/POSIX (nothing)
Guido van Rossumdc8a3cb1998-05-12 15:29:18748 (robertl@cwi.nl)
749
750
751Linker (ld) libraries and flags for threads
752...........................................
753
754 OS/threads Libraries/switches for use with threads
755
756 SunOS 5.{1-5}/solaris -lthread
757 SunOS 5.5/POSIX -lpthread
Guido van Rossum16e809e2001-04-16 02:07:08758 DEC OSF/1 3.x/DCE -lpthreads -lmach -lc_r -lc
Guido van Rossumdc8a3cb1998-05-12 15:29:18759 (butenhof@zko.dec.com)
760 Digital UNIX 4.x/DCE -lpthreads -lpthread -lmach -lexc -lc
761 (butenhof@zko.dec.com)
Guido van Rossum16e809e2001-04-16 02:07:08762 Digital UNIX 4.x/POSIX -lpthread -lmach -lexc -lc
Guido van Rossumdc8a3cb1998-05-12 15:29:18763 (butenhof@zko.dec.com)
Guido van Rossum16e809e2001-04-16 02:07:08764 AIX 4.1.4/{draft7,DCE} (nothing)
Guido van Rossumdc8a3cb1998-05-12 15:29:18765 (buhrt@iquest.net)
Guido van Rossum16e809e2001-04-16 02:07:08766 IRIX 6.2/POSIX -lpthread
Guido van Rossumdc8a3cb1998-05-12 15:29:18767 (jph@emilia.engr.sgi.com)
768
769
Martin v. Löwis1142de32002-03-29 16:28:31770Building a shared libpython
771---------------------------
772
773Starting with Python 2.3, the majority of the interpreter can be built
774into a shared library, which can then be used by the interpreter
775executable, and by applications embedding Python. To enable this feature,
Martin v. Löwis65069672002-08-03 21:38:27776configure with --enable-shared.
777
Fred Drake55512dc2003-07-21 16:01:39778If you enable this feature, the same object files will be used to create
779a static library. In particular, the static library will contain object
780files using position-independent code (PIC) on platforms where PIC flags
781are needed for the shared library.
Martin v. Löwis1142de32002-03-29 16:28:31782
783
Guido van Rossum6d9cc801996-08-01 17:31:22784Configuring additional built-in modules
Guido van Rossum91cb9d21995-04-10 11:47:38785---------------------------------------
Guido van Rossum19e0c261995-01-17 16:36:34786
Andrew M. Kuchlingebe30452001-02-27 03:24:24787Starting with Python 2.1, the setup.py script at the top of the source
788distribution attempts to detect which modules can be built and
789automatically compiles them. Autodetection doesn't always work, so
Guido van Rossum59b0b602002-02-08 22:22:35790you can still customize the configuration by editing the Modules/Setup
791file; but this should be considered a last resort. The rest of this
792section only applies if you decide to edit the Modules/Setup file.
793You also need this to enable static linking of certain modules (which
794is needed to enable profiling on some systems).
795
Andrew M. Kuchlingebe30452001-02-27 03:24:24796This file is initially copied from Setup.dist by the configure script;
797if it does not exist yet, create it by copying Modules/Setup.dist
798yourself (configure will never overwrite it). Never edit Setup.dist
799-- always edit Setup or Setup.local (see below). Read the comments in
800the file for information on what kind of edits are allowed. When you
801have edited Setup in the Modules directory, the interpreter will
Guido van Rossumef67ded2001-10-05 17:04:42802automatically be rebuilt the next time you run make (in the toplevel
803directory).
Guido van Rossum627b2d71993-12-24 10:39:16804
Andrew M. Kuchlingebe30452001-02-27 03:24:24805Many useful modules can be built on any Unix system, but some optional
806modules can't be reliably autodetected. Often the quickest way to
807determine whether a particular module works or not is to see if it
808will build: enable it in Setup, then if you get compilation or link
Fred Drake6caae142000-10-25 17:51:02809errors, disable it -- you're either missing support or need to adjust
810the compilation and linking parameters for that module.
Guido van Rossum6d9cc801996-08-01 17:31:22811
812On SGI IRIX, there are modules that interface to many SGI specific
Andrew M. Kuchlingebe30452001-02-27 03:24:24813system libraries, e.g. the GL library and the audio hardware. These
814modules will not be built by the setup.py script.
Guido van Rossum91cb9d21995-04-10 11:47:38815
Guido van Rossum4462e931997-01-22 21:00:32816In addition to the file Setup, you can also edit the file Setup.local.
817(the makesetup script processes both). You may find it more
818convenient to edit Setup.local and leave Setup alone. Then, when
819installing a new Python version, you can copy your old Setup.local
820file.
821
Guido van Rossum91cb9d21995-04-10 11:47:38822
823Setting the optimization/debugging options
824------------------------------------------
825
Guido van Rossum6d9cc801996-08-01 17:31:22826If you want or need to change the optimization/debugging options for
827the C compiler, assign to the OPT variable on the toplevel make
828command; e.g. "make OPT=-g" will build a debugging version of Python
829on most platforms. The default is OPT=-O; a value for OPT in the
830environment when the configure script is run overrides this default
831(likewise for CC; and the initial value for LIBS is used as the base
832set of libraries to link with).
Guido van Rossum91cb9d21995-04-10 11:47:38833
Fred Drake6caae142000-10-25 17:51:02834When compiling with GCC, the default value of OPT will also include
835the -Wall and -Wstrict-prototypes options.
836
837Additional debugging code to help debug memory management problems can
838be enabled by using the --with-pydebug option to the configure script.
839
Guido van Rossum91cb9d21995-04-10 11:47:38840
Guido van Rossuma68ca352001-10-04 17:00:07841Profiling
842---------
843
844If you want C profiling turned on, the easiest way is to run configure
845with the CC environment variable to the necessary compiler
846invocation. For example, on Linux, this works for profiling using
847gprof(1):
848
849 CC="gcc -pg" ./configure
850
851Note that on Linux, gprof apparently does not work for shared
852libraries. The Makefile/Setup mechanism can be used to compile and
Walter Dörwald7dc65d62003-02-02 23:37:05853link most extension modules statically.
Guido van Rossuma68ca352001-10-04 17:00:07854
855
Guido van Rossum91cb9d21995-04-10 11:47:38856Testing
857-------
Guido van Rossum433c8ad1994-08-01 12:07:07858
Guido van Rossum4f40c2d2000-09-05 16:46:22859To test the interpreter, type "make test" in the top-level directory.
Guido van Rossum6ae5d3d1997-05-14 21:39:05860This runs the test set twice (once with no compiled files, once with
861the compiled files left by the previous test run). The test set
862produces some output. You can generally ignore the messages about
Guido van Rossum59b0b602002-02-08 22:22:35863skipped tests due to optional features which can't be imported.
Guido van Rossum4f40c2d2000-09-05 16:46:22864If a message is printed about a failed test or a traceback or core
865dump is produced, something is wrong. On some Linux systems (those
Guido van Rossum24df6841997-12-30 04:32:30866that are not yet using glibc 6), test_strftime fails due to a
Guido van Rossum4f40c2d2000-09-05 16:46:22867non-standard implementation of strftime() in the C library. Please
868ignore this, or upgrade to glibc version 6.
Guido van Rossum433c8ad1994-08-01 12:07:07869
Guido van Rossum91cb9d21995-04-10 11:47:38870IMPORTANT: If the tests fail and you decide to mail a bug report,
871*don't* include the output of "make test". It is useless. Run the
Guido van Rossum4f40c2d2000-09-05 16:46:22872failing test manually, as follows:
Guido van Rossum91cb9d21995-04-10 11:47:38873
Andrew M. Kuchling83d042d2002-03-21 23:52:20874 ./python ./Lib/test/test_whatever.py
Guido van Rossum91cb9d21995-04-10 11:47:38875
Andrew M. Kuchling83d042d2002-03-21 23:52:20876(substituting the top of the source tree for '.' if you built in a
Guido van Rossum6ae5d3d1997-05-14 21:39:05877different directory). This runs the test in verbose mode.
Guido van Rossum91cb9d21995-04-10 11:47:38878
879
880Installing
881----------
882
Guido van Rossum6d9cc801996-08-01 17:31:22883To install the Python binary, library modules, shared library modules
884(see below), include files, configuration files, and the manual page,
Guido van Rossum64773801997-11-26 17:07:02885just type
886
887 make install
888
Guido van Rossum4f40c2d2000-09-05 16:46:22889This will install all platform-independent files in subdirectories of
890the directory given with the --prefix option to configure or to the
891`prefix' Make variable (default /usr/local). All binary and other
892platform-specific files will be installed in subdirectories if the
893directory given by --exec-prefix or the `exec_prefix' Make variable
894(defaults to the --prefix directory) is given.
Guido van Rossum64773801997-11-26 17:07:02895
Martin v. Löwis3b8ee082003-05-11 20:25:35896If DESTDIR is set, it will be taken as the root directory of the
897installation, and files will be installed into $(DESTDIR)$(prefix),
898$(DESTDIR)$(exec_prefix), etc.
899
Guido van Rossum64773801997-11-26 17:07:02900All subdirectories created will have Python's version number in their
901name, e.g. the library modules are installed in
Guido van Rossum67345eb2001-01-18 14:51:12902"/usr/local/lib/python<version>/" by default, where <version> is the
903<major>.<minor> release number (e.g. "2.1"). The Python binary is
904installed as "python<version>" and a hard link named "python" is
905created. The only file not installed with a version number in its
906name is the manual page, installed as "/usr/local/man/man1/python.1"
907by default.
Guido van Rossum433c8ad1994-08-01 12:07:07908
Neil Schemenauer0e91dc72001-02-16 04:18:08909If you have a previous installation of Python that you don't
Guido van Rossum64773801997-11-26 17:07:02910want to replace yet, use
911
912 make altinstall
913
914This installs the same set of files as "make install" except it
Guido van Rossum67345eb2001-01-18 14:51:12915doesn't create the hard link to "python<version>" named "python" and
916it doesn't install the manual page at all.
Guido van Rossum6d9cc801996-08-01 17:31:22917
Guido van Rossum6d9cc801996-08-01 17:31:22918The only thing you may have to install manually is the Python mode for
Guido van Rossum4f40c2d2000-09-05 16:46:22919Emacs found in Misc/python-mode.el. (But then again, more recent
920versions of Emacs may already have it.) Follow the instructions that
921came with Emacs for installation of site-specific files.
Guido van Rossum433c8ad1994-08-01 12:07:07922
Jack Jansena39ef862001-08-19 21:17:03923On Mac OS X, if you have configured Python with --enable-framework, you
924should use "make frameworkinstall" to do the installation. Note that this
925installs the Python executable in a place that is not normally on your
926PATH, you may want to set up a symlink in /usr/local/bin.
927
Guido van Rossum91cb9d21995-04-10 11:47:38928
929Configuration options and variables
930-----------------------------------
Guido van Rossum433c8ad1994-08-01 12:07:07931
Guido van Rossum6d9cc801996-08-01 17:31:22932Some special cases are handled by passing options to the configure
933script.
Guido van Rossum433c8ad1994-08-01 12:07:07934
Guido van Rossum6d9cc801996-08-01 17:31:22935WARNING: if you rerun the configure script with different options, you
936must run "make clean" before rebuilding. Exceptions to this rule:
937after changing --prefix or --exec-prefix, all you need to do is remove
Guido van Rossumb06df271997-08-05 21:50:20938Modules/getpath.o.
Guido van Rossum433c8ad1994-08-01 12:07:07939
Guido van Rossum91cb9d21995-04-10 11:47:38940--with(out)-gcc: The configure script uses gcc (the GNU C compiler) if
941 it finds it. If you don't want this, or if this compiler is
942 installed but broken on your platform, pass the option
943 --without-gcc. You can also pass "CC=cc" (or whatever the
944 name of the proper C compiler is) in the environment, but the
945 advantage of using --without-gcc is that this option is
946 remembered by the config.status script for its --recheck
947 option.
Guido van Rossum76be6ed1995-01-02 18:33:54948
Guido van Rossum91cb9d21995-04-10 11:47:38949--prefix, --exec-prefix: If you want to install the binaries and the
950 Python library somewhere else than in /usr/local/{bin,lib},
951 you can pass the option --prefix=DIRECTORY; the interpreter
952 binary will be installed as DIRECTORY/bin/python and the
953 library files as DIRECTORY/lib/python/*. If you pass
954 --exec-prefix=DIRECTORY (as well) this overrides the
955 installation prefix for architecture-dependent files (like the
956 interpreter binary). Note that --prefix=DIRECTORY also
957 affects the default module search path (sys.path), when
958 Modules/config.c is compiled. Passing make the option
959 prefix=DIRECTORY (and/or exec_prefix=DIRECTORY) overrides the
960 prefix set at configuration time; this may be more convenient
961 than re-running the configure script if you change your mind
Guido van Rossum4f40c2d2000-09-05 16:46:22962 about the install prefix.
Guido van Rossum76be6ed1995-01-02 18:33:54963
Guido van Rossum59b0b602002-02-08 22:22:35964--with-readline: This option is no longer supported. GNU
965 readline is automatically enabled by setup.py when present.
Guido van Rossum91cb9d21995-04-10 11:47:38966
Guido van Rossum7ac11532000-08-29 21:36:40967--with-threads: On most Unix systems, you can now use multiple
968 threads, and support for this is enabled by default. To
969 disable this, pass --with-threads=no. If the library required
970 for threads lives in a peculiar place, you can use
971 --with-thread=DIRECTORY. IMPORTANT: run "make clean" after
972 changing (either enabling or disabling) this option, or you
973 will get link errors! Note: for DEC Unix use
Guido van Rossum0e13da91998-02-22 04:36:34974 --with-dec-threads instead.
Guido van Rossum91cb9d21995-04-10 11:47:38975
976--with-sgi-dl: On SGI IRIX 4, dynamic loading of extension modules is
977 supported by the "dl" library by Jack Jansen, which is
Guido van Rossum6d9cc801996-08-01 17:31:22978 ftp'able from ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
Guido van Rossum91cb9d21995-04-10 11:47:38979 This is enabled (after you've ftp'ed and compiled the dl
Guido van Rossum4f40c2d2000-09-05 16:46:22980 library) by passing --with-sgi-dl=DIRECTORY where DIRECTORY
Guido van Rossum91cb9d21995-04-10 11:47:38981 is the absolute pathname of the dl library. (Don't bother on
982 IRIX 5, it already has dynamic linking using SunOS style
Martin v. Löwis779ffc02002-12-02 22:17:01983 shared libraries.) THIS OPTION IS UNSUPPORTED.
Guido van Rossum91cb9d21995-04-10 11:47:38984
Guido van Rossum4f40c2d2000-09-05 16:46:22985--with-dl-dld: Dynamic loading of modules is rumored to be supported
Guido van Rossum91cb9d21995-04-10 11:47:38986 on some other systems: VAX (Ultrix), Sun3 (SunOS 3.4), Sequent
987 Symmetry (Dynix), and Atari ST. This is done using a
988 combination of the GNU dynamic loading package
Guido van Rossum6d9cc801996-08-01 17:31:22989 (ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z) and an
Guido van Rossum91cb9d21995-04-10 11:47:38990 emulation of the SGI dl library mentioned above (the emulation
991 can be found at
Guido van Rossum6d9cc801996-08-01 17:31:22992 ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z). To
Guido van Rossum16e809e2001-04-16 02:07:08993 enable this, ftp and compile both libraries, then call
Guido van Rossum4f40c2d2000-09-05 16:46:22994 configure, passing it the option
Guido van Rossum91cb9d21995-04-10 11:47:38995 --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY where DL_DIRECTORY is
996 the absolute pathname of the dl emulation library and
997 DLD_DIRECTORY is the absolute pathname of the GNU dld library.
998 (Don't bother on SunOS 4 or 5, they already have dynamic
Martin v. Löwis779ffc02002-12-02 22:17:01999 linking using shared libraries.) THIS OPTION IS UNSUPPORTED.
Guido van Rossum91cb9d21995-04-10 11:47:381000
1001--with-libm, --with-libc: It is possible to specify alternative
1002 versions for the Math library (default -lm) and the C library
1003 (default the empty string) using the options
Guido van Rossum4f40c2d2000-09-05 16:46:221004 --with-libm=STRING and --with-libc=STRING, respectively. For
1005 example, if your system requires that you pass -lc_s to the C
1006 compiler to use the shared C library, you can pass
1007 --with-libc=-lc_s. These libraries are passed after all other
1008 libraries, the C library last.
Guido van Rossum16e809e2001-04-16 02:07:081009
Guido van Rossum4f40c2d2000-09-05 16:46:221010--with-libs='libs': Add 'libs' to the LIBS that the python interpreter
1011 is linked against.
Guido van Rossumd02ba451996-07-31 17:36:011012
Martin v. Löwis2df66942000-12-13 14:14:321013--with-cxx=<compiler>: Some C++ compilers require that main() is
1014 compiled with the C++ if there is any C++ code in the application.
1015 Specifically, g++ on a.out systems may require that to support
1016 construction of global objects. With this option, the main() function
1017 of Python will be compiled with <compiler>; use that only if you
1018 plan to use C++ extension modules, and if your compiler requires
1019 compilation of main() as a C++ program.
1020
1021
Fred Drake6caae142000-10-25 17:51:021022--with-pydebug: Enable additional debugging code to help track down
1023 memory management problems. This allows printing a list of all
1024 live objects when the interpreter terminates.
Jack Jansen7b8c7542002-04-14 20:12:411025
1026--with(out)-universal-newlines: enable reading of text files with
1027 foreign newline convention (default: enabled). In other words,
1028 any of \r, \n or \r\n is acceptable as end-of-line character.
1029 If enabled import and execfile will automatically accept any newline
1030 in files. Python code can open a file with open(file, 'U') to
Martin v. Löwis7e4cfcb2002-12-19 16:21:491031 read it in universal newline mode. THIS OPTION IS UNSUPPORTED.
Fred Drake6caae142000-10-25 17:51:021032
Martin v. Löwisf30d60e2004-06-08 08:17:441033--with-tsc: Profile using the Pentium timestamping counter (TSC).
Guido van Rossum76be6ed1995-01-02 18:33:541034
Guido van Rossum433c8ad1994-08-01 12:07:071035Building for multiple architectures (using the VPATH feature)
1036-------------------------------------------------------------
1037
1038If your file system is shared between multiple architectures, it
1039usually is not necessary to make copies of the sources for each
1040architecture you want to support. If the make program supports the
1041VPATH feature, you can create an empty build directory for each
1042architecture, and in each directory run the configure script (on the
1043appropriate machine with the appropriate options). This creates the
1044necessary subdirectories and the Makefiles therein. The Makefiles
Guido van Rossum4f40c2d2000-09-05 16:46:221045contain a line VPATH=... which points to a directory containing the
Guido van Rossumd0fe8451996-08-26 03:02:371046actual sources. (On SGI systems, use "smake -J1" instead of "make" if
1047you use VPATH -- don't try gnumake.)
Guido van Rossum433c8ad1994-08-01 12:07:071048
1049For example, the following is all you need to build a minimal Python
1050in /usr/tmp/python (assuming ~guido/src/python is the toplevel
1051directory and you want to build in /usr/tmp/python):
1052
1053 $ mkdir /usr/tmp/python
1054 $ cd /usr/tmp/python
1055 $ ~guido/src/python/configure
1056 [...]
1057 $ make
1058 [...]
1059 $
1060
Neil Schemenauer73f8ab22001-01-26 22:18:551061Note that configure copies the original Setup file to the build
Guido van Rossum433c8ad1994-08-01 12:07:071062directory if it finds no Setup file there. This means that you can
1063edit the Setup file for each architecture independently. For this
1064reason, subsequent changes to the original Setup file are not tracked
1065automatically, as they might overwrite local changes. To force a copy
1066of a changed original Setup file, delete the target Setup file. (The
1067makesetup script supports multiple input files, so if you want to be
1068fancy you can change the rules to create an empty Setup.local if it
1069doesn't exist and run it with arguments $(srcdir)/Setup Setup.local;
1070however this assumes that you only need to add modules.)
1071
1072
Guido van Rossum433c8ad1994-08-01 12:07:071073Building on non-UNIX systems
1074----------------------------
1075
Martin v. Löwis938118a2004-12-24 08:27:201076For Windows (2000/NT/ME/98/95), assuming you have MS VC++ 7.1, the
Tim Peters03444242000-09-19 00:38:351077project files are in PCbuild, the workspace is pcbuild.dsw. See
1078PCbuild\readme.txt for detailed instructions.
Guido van Rossum8d7d4ed1996-07-30 21:41:071079
Martin v. Löwis938118a2004-12-24 08:27:201080For other non-Unix Windows compilers, in particular MS VC++ 6.0 and
Guido van Rossum31ae2071999-04-12 14:47:301081for OS/2, enter the directory "PC" and read the file "readme.txt".
Guido van Rossum6d9cc801996-08-01 17:31:221082
1083For the Mac, a separate source distribution will be made available,
1084for use with the CodeWarrior compiler. If you are interested in Mac
1085development, join the PythonMac Special Interest Group
1086(http://www.python.org/sigs/pythonmac-sig/, or send email to
1087pythonmac-sig-request@python.org).
1088
1089Of course, there are also binary distributions available for these
Guido van Rossum67345eb2001-01-18 14:51:121090platforms -- see http://www.python.org/.
Guido van Rossum6d9cc801996-08-01 17:31:221091
1092To port Python to a new non-UNIX system, you will have to fake the
1093effect of running the configure script manually (for Mac and PC, this
1094has already been done for you). A good start is to copy the file
Michael W. Hudsonbe6e0f42002-06-23 16:29:361095pyconfig.h.in to pyconfig.h and edit the latter to reflect the actual
Guido van Rossum433c8ad1994-08-01 12:07:071096configuration of your system. Most symbols must simply be defined as
10971 only if the corresponding feature is present and can be left alone
Michael W. Hudsonbe6e0f42002-06-23 16:29:361098otherwise; however the *_t type symbols must be defined as some
1099variant of int if they need to be defined at all.
Guido van Rossum433c8ad1994-08-01 12:07:071100
Barry Warsaw06557452001-12-14 20:47:121101For all platforms, it's important that the build arrange to define the
1102preprocessor symbol NDEBUG on the compiler command line in a release
1103build of Python (else assert() calls remain in the code, hurting
1104release-build performance). The Unix, Windows and Mac builds already
1105do this.
Guido van Rossum433c8ad1994-08-01 12:07:071106
Guido van Rossum91cb9d21995-04-10 11:47:381107
1108Miscellaneous issues
1109====================
1110
Guido van Rossum91cb9d21995-04-10 11:47:381111Emacs mode
1112----------
1113
Guido van Rossumc0be2f51997-10-08 05:05:281114There's an excellent Emacs editing mode for Python code; see the file
1115Misc/python-mode.el. Originally written by the famous Tim Peters, it
Guido van Rossum4f40c2d2000-09-05 16:46:221116is now maintained by the equally famous Barry Warsaw (it's no
Guido van Rossum67345eb2001-01-18 14:51:121117coincidence that they now both work on the same team). The latest
Guido van Rossumc07d5fa2000-09-01 22:50:021118version, along with various other contributed Python-related Emacs
Guido van Rossum67345eb2001-01-18 14:51:121119goodies, is online at http://www.python.org/emacs/python-mode. And
Guido van Rossumc07d5fa2000-09-01 22:50:021120if you are planning to edit the Python C code, please pick up the
Guido van Rossum67345eb2001-01-18 14:51:121121latest version of CC Mode http://www.python.org/emacs/cc-mode; it
Guido van Rossumc07d5fa2000-09-01 22:50:021122contains a "python" style used throughout most of the Python C source
1123files. (Newer versions of Emacs or XEmacs may already come with the
1124latest version of python-mode.)
Guido van Rossum91cb9d21995-04-10 11:47:381125
1126
Guido van Rossum59b0b602002-02-08 22:22:351127Tkinter
1128-------
Guido van Rossum91cb9d21995-04-10 11:47:381129
Guido van Rossum59b0b602002-02-08 22:22:351130The setup.py script automatically configures this when it detects a
1131usable Tcl/Tk installation. This requires Tcl/Tk version 8.0 or
Fred Drake8179a9d2000-09-28 23:28:301132higher.
Guido van Rossum6d9cc801996-08-01 17:31:221133
Guido van Rossum973e4dc2000-07-01 00:34:391134For more Tkinter information, see the Tkinter Resource page:
1135http://www.python.org/topics/tkinter/
Guido van Rossumc0be2f51997-10-08 05:05:281136
Guido van Rossum6d9cc801996-08-01 17:31:221137There are demos in the Demo/tkinter directory, in the subdirectories
1138guido, matt and www (the matt and guido subdirectories have been
1139overhauled to use more recent Tkinter coding conventions).
Guido van Rossum91cb9d21995-04-10 11:47:381140
1141Note that there's a Python module called "Tkinter" (capital T) which
Guido van Rossumc07d5fa2000-09-01 22:50:021142lives in Lib/lib-tk/Tkinter.py, and a C module called "_tkinter"
Guido van Rossum6d9cc801996-08-01 17:31:221143(lower case t and leading underscore) which lives in
Guido van Rossum4f40c2d2000-09-05 16:46:221144Modules/_tkinter.c. Demos and normal Tk applications import only the
Guido van Rossum59b0b602002-02-08 22:22:351145Python Tkinter module -- only the latter imports the C _tkinter
1146module. In order to find the C _tkinter module, it must be compiled
1147and linked into the Python interpreter -- the setup.py script does
1148this. In order to find the Python Tkinter module, sys.path must be
1149set correctly -- normal installation takes care of this.
Guido van Rossum84c8c7f1995-08-28 02:44:241150
Guido van Rossum91cb9d21995-04-10 11:47:381151
Guido van Rossum433c8ad1994-08-01 12:07:071152Distribution structure
1153----------------------
1154
Guido van Rossum4f40c2d2000-09-05 16:46:221155Most subdirectories have their own README files. Most files have
Guido van Rossum433c8ad1994-08-01 12:07:071156comments.
1157
Guido van Rossumc07d5fa2000-09-01 22:50:021158.cvsignore Additional filename matching patterns for CVS to ignore
1159BeOS/ Files specific to the BeOS port
Guido van Rossum6d9cc801996-08-01 17:31:221160Demo/ Demonstration scripts, modules and programs
Guido van Rossumc07d5fa2000-09-01 22:50:021161Doc/ Documentation sources (LaTeX)
Guido van Rossum6d9cc801996-08-01 17:31:221162Grammar/ Input for the parser generator
1163Include/ Public header files
Guido van Rossumc07d5fa2000-09-01 22:50:021164LICENSE Licensing information
Guido van Rossum6d9cc801996-08-01 17:31:221165Lib/ Python library modules
Michael W. Hudsonbe6e0f42002-06-23 16:29:361166Mac/ Macintosh specific resources
Neil Schemenauer3f52da52001-01-24 17:49:591167Makefile.pre.in Source from which config.status creates the Makefile.pre
Guido van Rossumc0be2f51997-10-08 05:05:281168Misc/ Miscellaneous useful files
Guido van Rossum6d9cc801996-08-01 17:31:221169Modules/ Implementation of most built-in modules
1170Objects/ Implementation of most built-in object types
Guido van Rossumc07d5fa2000-09-01 22:50:021171PC/ Files specific to PC ports (DOS, Windows, OS/2)
1172PCbuild/ Build directory for Microsoft Visual C++
Guido van Rossum6d9cc801996-08-01 17:31:221173Parser/ The parser and tokenizer and their input handling
Guido van Rossum4f40c2d2000-09-05 16:46:221174Python/ The byte-compiler and interpreter
Guido van Rossum6d9cc801996-08-01 17:31:221175README The file you're reading now
1176Tools/ Some useful programs written in Python
Michael W. Hudsonbe6e0f42002-06-23 16:29:361177pyconfig.h.in Source from which pyconfig.h is created (GNU autoheader output)
Guido van Rossum6d9cc801996-08-01 17:31:221178configure Configuration shell script (GNU autoconf output)
Guido van Rossumc07d5fa2000-09-01 22:50:021179configure.in Configuration specification (input for GNU autoconf)
Guido van Rossum6d9cc801996-08-01 17:31:221180install-sh Shell script used to install files
Guido van Rossum91cb9d21995-04-10 11:47:381181
1182The following files will (may) be created in the toplevel directory by
1183the configuration and build processes:
1184
Guido van Rossum6d9cc801996-08-01 17:31:221185Makefile Build rules
Neil Schemenauer3f52da52001-01-24 17:49:591186Makefile.pre Build rules before running Modules/makesetup
Michael W. Hudsonbe6e0f42002-06-23 16:29:361187buildno Keeps track of the build number
Guido van Rossumc07d5fa2000-09-01 22:50:021188config.cache Cache of configuration variables
Michael W. Hudsonbe6e0f42002-06-23 16:29:361189pyconfig.h Configuration header
Guido van Rossumc0be2f51997-10-08 05:05:281190config.log Log from last configure run
Guido van Rossum4f40c2d2000-09-05 16:46:221191config.status Status from last run of the configure script
Guido van Rossumc07d5fa2000-09-01 22:50:021192getbuildinfo.o Object file from Modules/getbuildinfo.c
Guido van Rossum67345eb2001-01-18 14:51:121193libpython<version>.a The library archive
Guido van Rossum6d9cc801996-08-01 17:31:221194python The executable interpreter
1195tags, TAGS Tags files for vi and Emacs
Guido van Rossum433c8ad1994-08-01 12:07:071196
1197
Guido van Rossumc07d5fa2000-09-01 22:50:021198That's all, folks!
1199------------------
Guido van Rossum433c8ad1994-08-01 12:07:071200
1201
Guido van Rossum67345eb2001-01-18 14:51:121202--Guido van Rossum (home page: http://www.python.org/~guido/)