PageRenderTime 68ms CodeModel.GetById 34ms RepoModel.GetById 1ms app.codeStats 0ms

/README

http://unladen-swallow.googlecode.com/
#! | 1256 lines | 974 code | 282 blank | 0 comment | 0 complexity | cee2251d191c01a7d5bab51f05aef612 MD5 | raw file
Possible License(s): 0BSD, BSD-3-Clause
  1. This is Python version 2.6.4
  2. ============================
  3. Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
  4. Python Software Foundation.
  5. All rights reserved.
  6. Copyright (c) 2000 BeOpen.com.
  7. All rights reserved.
  8. Copyright (c) 1995-2001 Corporation for National Research Initiatives.
  9. All rights reserved.
  10. Copyright (c) 1991-1995 Stichting Mathematisch Centrum.
  11. All rights reserved.
  12. License information
  13. -------------------
  14. See the file "LICENSE" for information on the history of this
  15. software, terms & conditions for usage, and a DISCLAIMER OF ALL
  16. WARRANTIES.
  17. This Python distribution contains no GNU General Public Licensed
  18. (GPLed) code so it may be used in proprietary projects just like prior
  19. Python distributions. There are interfaces to some GNU code but these
  20. are entirely optional.
  21. All trademarks referenced herein are property of their respective
  22. holders.
  23. What's new in this release?
  24. ---------------------------
  25. See the file "Misc/NEWS".
  26. If you don't read instructions
  27. ------------------------------
  28. Congratulations on getting this far. :-)
  29. To start building right away (on UNIX): type "./configure" in the
  30. current directory and when it finishes, type "make". This creates an
  31. executable "./python"; to install in /usr/local, first do "su root"
  32. and then "make install".
  33. The section `Build instructions' below is still recommended reading.
  34. What is Python anyway?
  35. ----------------------
  36. Python is an interpreted, interactive object-oriented programming
  37. language suitable (amongst other uses) for distributed application
  38. development, scripting, numeric computing and system testing. Python
  39. is often compared to Tcl, Perl, Java, JavaScript, Visual Basic or
  40. Scheme. To find out more about what Python can do for you, point your
  41. browser to http://www.python.org/.
  42. How do I learn Python?
  43. ----------------------
  44. The official tutorial is still a good place to start; see
  45. http://docs.python.org/ for online and downloadable versions, as well
  46. as a list of other introductions, and reference documentation.
  47. There's a quickly growing set of books on Python. See
  48. http://wiki.python.org/moin/PythonBooks for a list.
  49. Documentation
  50. -------------
  51. All documentation is provided online in a variety of formats. In
  52. order of importance for new users: Tutorial, Library Reference,
  53. Language Reference, Extending & Embedding, and the Python/C API. The
  54. Library Reference is especially of immense value since much of
  55. Python's power is described there, including the built-in data types
  56. and functions!
  57. All documentation is also available online at the Python web site
  58. (http://docs.python.org/, see below). It is available online for occasional
  59. reference, or can be downloaded in many formats for faster access. The
  60. documentation is downloadable in HTML, PostScript, PDF, LaTeX, and
  61. reStructuredText (2.6+) formats; the LaTeX and reStructuredText versions are
  62. primarily for documentation authors, translators, and people with special
  63. formatting requirements.
  64. Web sites
  65. ---------
  66. New Python releases and related technologies are published at
  67. http://www.python.org/. Come visit us!
  68. There's also a Python community web site at
  69. http://starship.python.net/.
  70. Newsgroups and Mailing Lists
  71. ----------------------------
  72. Read comp.lang.python, a high-volume discussion newsgroup about
  73. Python, or comp.lang.python.announce, a low-volume moderated newsgroup
  74. for Python-related announcements. These are also accessible as
  75. mailing lists: see http://www.python.org/community/lists.html for an
  76. overview of these and many other Python-related mailing lists.
  77. Archives are accessible via the Google Groups Usenet archive; see
  78. http://groups.google.com/. The mailing lists are also archived, see
  79. http://www.python.org/community/lists.html for details.
  80. Bug reports
  81. -----------
  82. To report or search for bugs, please use the Python Bug
  83. Tracker at http://bugs.python.org.
  84. Patches and contributions
  85. -------------------------
  86. To submit a patch or other contribution, please use the Python Patch
  87. Manager at http://bugs.python.org. Guidelines
  88. for patch submission may be found at http://www.python.org/dev/patches/.
  89. If you have a proposal to change Python, you may want to send an email to the
  90. comp.lang.python or python-ideas mailing lists for inital feedback. A Python
  91. Enhancement Proposal (PEP) may be submitted if your idea gains ground. All
  92. current PEPs, as well as guidelines for submitting a new PEP, are listed at
  93. http://www.python.org/dev/peps/.
  94. Questions
  95. ---------
  96. For help, if you can't find it in the manuals or on the web site, it's
  97. best to post to the comp.lang.python or the Python mailing list (see
  98. above). If you specifically don't want to involve the newsgroup or
  99. mailing list, send questions to help@python.org (a group of volunteers
  100. who answer questions as they can). The newsgroup is the most
  101. efficient way to ask public questions.
  102. Build instructions
  103. ==================
  104. Before you can build Python, you must first configure it.
  105. Fortunately, the configuration and build process has been automated
  106. for Unix and Linux installations, so all you usually have to do is
  107. type a few commands and sit back. There are some platforms where
  108. things are not quite as smooth; see the platform specific notes below.
  109. If you want to build for multiple platforms sharing the same source
  110. tree, see the section on VPATH below.
  111. Start by running the script "./configure", which determines your
  112. system configuration and creates the Makefile. (It takes a minute or
  113. two -- please be patient!) You may want to pass options to the
  114. configure script -- see the section below on configuration options and
  115. variables. When it's done, you are ready to run make.
  116. To build Python, you normally type "make" in the toplevel directory.
  117. If you have changed the configuration, the Makefile may have to be
  118. rebuilt. In this case you may have to run make again to correctly
  119. build your desired target. The interpreter executable is built in the
  120. top level directory.
  121. Once you have built a Python interpreter, see the subsections below on
  122. testing and installation. If you run into trouble, see the next
  123. section.
  124. Previous versions of Python used a manual configuration process that
  125. involved editing the file Modules/Setup. While this file still exists
  126. and manual configuration is still supported, it is rarely needed any
  127. more: almost all modules are automatically built as appropriate under
  128. guidance of the setup.py script, which is run by Make after the
  129. interpreter has been built.
  130. Troubleshooting
  131. ---------------
  132. See also the platform specific notes in the next section.
  133. If you run into other trouble, see the FAQ
  134. (http://www.python.org/doc/faq) for hints on what can go wrong, and
  135. how to fix it.
  136. If you rerun the configure script with different options, remove all
  137. object files by running "make clean" before rebuilding. Believe it or
  138. not, "make clean" sometimes helps to clean up other inexplicable
  139. problems as well. Try it before sending in a bug report!
  140. If the configure script fails or doesn't seem to find things that
  141. should be there, inspect the config.log file.
  142. If you get a warning for every file about the -Olimit option being no
  143. longer supported, you can ignore it. There's no foolproof way to know
  144. whether this option is needed; all we can do is test whether it is
  145. accepted without error. On some systems, e.g. older SGI compilers, it
  146. is essential for performance (specifically when compiling eval.cc,
  147. which has more basic blocks than the default limit of 1000). If the
  148. warning bothers you, edit the Makefile to remove "-Olimit 1500" from
  149. the OPT variable.
  150. If you get failures in test_long, or sys.maxint gets set to -1, you
  151. are probably experiencing compiler bugs, usually related to
  152. optimization. This is a common problem with some versions of gcc, and
  153. some vendor-supplied compilers, which can sometimes be worked around
  154. by turning off optimization. Consider switching to stable versions
  155. (gcc 2.95.2, gcc 3.x, or contact your vendor.)
  156. From Python 2.0 onward, all Python C code is ANSI C. Compiling using
  157. old K&R-C-only compilers is no longer possible. ANSI C compilers are
  158. available for all modern systems, either in the form of updated
  159. compilers from the vendor, or one of the free compilers (gcc).
  160. If "make install" fails mysteriously during the "compiling the library"
  161. step, make sure that you don't have any of the PYTHONPATH or PYTHONHOME
  162. environment variables set, as they may interfere with the newly built
  163. executable which is compiling the library.
  164. Unsupported systems
  165. -------------------
  166. A number of features are not supported in Python 2.5 anymore. Some
  167. support code is still present, but will be removed in Python 2.6.
  168. If you still need to use current Python versions on these systems,
  169. please send a message to python-dev@python.org indicating that you
  170. volunteer to support this system. For a more detailed discussion
  171. regarding no-longer-supported and resupporting platforms, as well
  172. as a list of platforms that became or will be unsupported, see PEP 11.
  173. More specifically, the following systems are not supported any
  174. longer:
  175. - SunOS 4
  176. - DYNIX
  177. - dgux
  178. - Minix
  179. - NeXT
  180. - Irix 4 and --with-sgi-dl
  181. - Linux 1
  182. - Systems defining __d6_pthread_create (configure.in)
  183. - Systems defining PY_PTHREAD_D4, PY_PTHREAD_D6,
  184. or PY_PTHREAD_D7 in thread_pthread.h
  185. - Systems using --with-dl-dld
  186. - Systems using --without-universal-newlines
  187. - MacOS 9
  188. The following systems are still supported in Python 2.5, but
  189. support will be dropped in 2.6:
  190. - Systems using --with-wctype-functions
  191. - Win9x, WinME
  192. Warning on install in Windows 98 and Windows Me
  193. -----------------------------------------------
  194. Following Microsoft's closing of Extended Support for
  195. Windows 98/ME (July 11, 2006), Python 2.6 will stop
  196. supporting these platforms. Python development and
  197. maintainability becomes easier (and more reliable) when
  198. platform specific code targeting OSes with few users
  199. and no dedicated expert developers is taken out. The
  200. vendor also warns that the OS versions listed above
  201. "can expose customers to security risks" and recommends
  202. upgrade.
  203. Platform specific notes
  204. -----------------------
  205. (Some of these may no longer apply. If you find you can build Python
  206. on these platforms without the special directions mentioned here,
  207. submit a documentation bug report to SourceForge (see Bug Reports
  208. above) so we can remove them!)
  209. Unix platforms: If your vendor still ships (and you still use) Berkeley DB
  210. 1.85 you will need to edit Modules/Setup to build the bsddb185
  211. module and add a line to sitecustomize.py which makes it the
  212. default. In Modules/Setup a line like
  213. bsddb185 bsddbmodule.c
  214. should work. (You may need to add -I, -L or -l flags to direct the
  215. compiler and linker to your include files and libraries.)
  216. XXX I think this next bit is out of date:
  217. 64-bit platforms: The modules audioop, and imageop don't work.
  218. The setup.py script disables them on 64-bit installations.
  219. Don't try to enable them in the Modules/Setup file. They
  220. contain code that is quite wordsize sensitive. (If you have a
  221. fix, let us know!)
  222. Solaris: When using Sun's C compiler with threads, at least on Solaris
  223. 2.5.1, you need to add the "-mt" compiler option (the simplest
  224. way is probably to specify the compiler with this option as
  225. the "CC" environment variable when running the configure
  226. script).
  227. When using GCC on Solaris, beware of binutils 2.13 or GCC
  228. versions built using it. This mistakenly enables the
  229. -zcombreloc option which creates broken shared libraries on
  230. Solaris. binutils 2.12 works, and the binutils maintainers
  231. are aware of the problem. Binutils 2.13.1 only partially
  232. fixed things. It appears that 2.13.2 solves the problem
  233. completely. This problem is known to occur with Solaris 2.7
  234. and 2.8, but may also affect earlier and later versions of the
  235. OS.
  236. When the dynamic loader complains about errors finding shared
  237. libraries, such as
  238. ld.so.1: ./python: fatal: libstdc++.so.5: open failed:
  239. No such file or directory
  240. you need to first make sure that the library is available on
  241. your system. Then, you need to instruct the dynamic loader how
  242. to find it. You can choose any of the following strategies:
  243. 1. When compiling Python, set LD_RUN_PATH to the directories
  244. containing missing libraries.
  245. 2. When running Python, set LD_LIBRARY_PATH to these directories.
  246. 3. Use crle(8) to extend the search path of the loader.
  247. 4. Modify the installed GCC specs file, adding -R options into the
  248. *link: section.
  249. The complex object fails to compile on Solaris 10 with gcc 3.4 (at
  250. least up to 3.4.3). To work around it, define Py_HUGE_VAL as
  251. HUGE_VAL(), e.g.:
  252. make CPPFLAGS='-D"Py_HUGE_VAL=HUGE_VAL()" -I. -I$(srcdir)/Include'
  253. ./python setup.py CPPFLAGS='-D"Py_HUGE_VAL=HUGE_VAL()"'
  254. Linux: A problem with threads and fork() was tracked down to a bug in
  255. the pthreads code in glibc version 2.0.5; glibc version 2.0.7
  256. solves the problem. This causes the popen2 test to fail;
  257. problem and solution reported by Pablo Bleyer.
  258. Red Hat Linux: Red Hat 9 built Python2.2 in UCS-4 mode and hacked
  259. Tcl to support it. To compile Python2.3 with Tkinter, you will
  260. need to pass --enable-unicode=ucs4 flag to ./configure.
  261. There's an executable /usr/bin/python which is Python
  262. 1.5.2 on most older Red Hat installations; several key Red Hat tools
  263. require this version. Python 2.1.x may be installed as
  264. /usr/bin/python2. The Makefile installs Python as
  265. /usr/local/bin/python, which may or may not take precedence
  266. over /usr/bin/python, depending on how you have set up $PATH.
  267. FreeBSD 3.x and probably platforms with NCurses that use libmytinfo or
  268. similar: When using cursesmodule, the linking is not done in
  269. the correct order with the defaults. Remove "-ltermcap" from
  270. the readline entry in Setup, and use as curses entry: "curses
  271. cursesmodule.c -lmytinfo -lncurses -ltermcap" - "mytinfo" (so
  272. called on FreeBSD) should be the name of the auxiliary library
  273. required on your platform. Normally, it would be linked
  274. automatically, but not necessarily in the correct order.
  275. BSDI: BSDI versions before 4.1 have known problems with threads,
  276. which can cause strange errors in a number of modules (for
  277. instance, the 'test_signal' test script will hang forever.)
  278. Turning off threads (with --with-threads=no) or upgrading to
  279. BSDI 4.1 solves this problem.
  280. DEC Unix: Run configure with --with-dec-threads, or with
  281. --with-threads=no if no threads are desired (threads are on by
  282. default). When using GCC, it is possible to get an internal
  283. compiler error if optimization is used. This was reported for
  284. GCC 2.7.2.3 on selectmodule.c. Manually compile the affected
  285. file without optimization to solve the problem.
  286. DEC Ultrix: compile with GCC to avoid bugs in the native compiler,
  287. and pass SHELL=/bin/sh5 to Make when installing.
  288. AIX: A complete overhaul of the shared library support is now in
  289. place. See Misc/AIX-NOTES for some notes on how it's done.
  290. (The optimizer bug reported at this place in previous releases
  291. has been worked around by a minimal code change.) If you get
  292. errors about pthread_* functions, during compile or during
  293. testing, try setting CC to a thread-safe (reentrant) compiler,
  294. like "cc_r". For full C++ module support, set CC="xlC_r" (or
  295. CC="xlC" without thread support).
  296. AIX 5.3: To build a 64-bit version with IBM's compiler, I used the
  297. following:
  298. export PATH=/usr/bin:/usr/vacpp/bin
  299. ./configure --with-gcc="xlc_r -q64" --with-cxx="xlC_r -q64" \
  300. --disable-ipv6 AR="ar -X64"
  301. make
  302. HP-UX: When using threading, you may have to add -D_REENTRANT to the
  303. OPT variable in the top-level Makefile; reported by Pat Knight,
  304. this seems to make a difference (at least for HP-UX 10.20)
  305. even though pyconfig.h defines it. This seems unnecessary when
  306. using HP/UX 11 and later - threading seems to work "out of the
  307. box".
  308. HP-UX ia64: When building on the ia64 (Itanium) platform using HP's
  309. compiler, some experience has shown that the compiler's
  310. optimiser produces a completely broken version of python
  311. (see http://www.python.org/sf/814976). To work around this,
  312. edit the Makefile and remove -O from the OPT line.
  313. To build a 64-bit executable on an Itanium 2 system using HP's
  314. compiler, use these environment variables:
  315. CC=cc
  316. CXX=aCC
  317. BASECFLAGS="+DD64"
  318. LDFLAGS="+DD64 -lxnet"
  319. and call configure as:
  320. ./configure --without-gcc
  321. then *unset* the environment variables again before running
  322. make. (At least one of these flags causes the build to fail
  323. if it remains set.) You still have to edit the Makefile and
  324. remove -O from the OPT line.
  325. HP PA-RISC 2.0: A recent bug report (http://www.python.org/sf/546117)
  326. suggests that the C compiler in this 64-bit system has bugs
  327. in the optimizer that break Python. Compiling without
  328. optimization solves the problems.
  329. SCO: The following apply to SCO 3 only; Python builds out of the box
  330. on SCO 5 (or so we've heard).
  331. 1) Everything works much better if you add -U__STDC__ to the
  332. defs. This is because all the SCO header files are broken.
  333. Anything that isn't mentioned in the C standard is
  334. conditionally excluded when __STDC__ is defined.
  335. 2) Due to the U.S. export restrictions, SCO broke the crypt
  336. stuff out into a separate library, libcrypt_i.a so the LIBS
  337. needed be set to:
  338. LIBS=' -lsocket -lcrypt_i'
  339. UnixWare: There are known bugs in the math library of the system, as well as
  340. problems in the handling of threads (calling fork in one
  341. thread may interrupt system calls in others). Therefore, test_math and
  342. tests involving threads will fail until those problems are fixed.
  343. QNX: Chris Herborth (chrish@qnx.com) writes:
  344. configure works best if you use GNU bash; a port is available on
  345. ftp.qnx.com in /usr/free. I used the following process to build,
  346. test and install Python 1.5.x under QNX:
  347. 1) CONFIG_SHELL=/usr/local/bin/bash CC=cc RANLIB=: \
  348. ./configure --verbose --without-gcc --with-libm=""
  349. 2) edit Modules/Setup to activate everything that makes sense for
  350. your system... tested here at QNX with the following modules:
  351. array, audioop, binascii, cPickle, cStringIO, cmath,
  352. crypt, curses, errno, fcntl, gdbm, grp, imageop,
  353. _locale, math, md5, new, operator, parser, pcre,
  354. posix, pwd, readline, regex, reop,
  355. select, signal, socket, soundex, strop, struct,
  356. syslog, termios, time, timing, zlib, audioop, imageop
  357. 3) make SHELL=/usr/local/bin/bash
  358. or, if you feel the need for speed:
  359. make SHELL=/usr/local/bin/bash OPT="-5 -Oil+nrt"
  360. 4) make SHELL=/usr/local/bin/bash test
  361. Using GNU readline 2.2 seems to behave strangely, but I
  362. think that's a problem with my readline 2.2 port. :-\
  363. 5) make SHELL=/usr/local/bin/bash install
  364. If you get SIGSEGVs while running Python (I haven't yet, but
  365. I've only run small programs and the test cases), you're
  366. probably running out of stack; the default 32k could be a
  367. little tight. To increase the stack size, edit the Makefile
  368. to read: LDFLAGS = -N 48k
  369. BeOS: See Misc/BeOS-NOTES for notes about compiling/installing
  370. Python on BeOS R3 or later. Note that only the PowerPC
  371. platform is supported for R3; both PowerPC and x86 are
  372. supported for R4.
  373. Cray T3E: Mark Hadfield (m.hadfield@niwa.co.nz) writes:
  374. Python can be built satisfactorily on a Cray T3E but based on
  375. my experience with the NIWA T3E (2002-05-22, version 2.2.1)
  376. there are a few bugs and gotchas. For more information see a
  377. thread on comp.lang.python in May 2002 entitled "Building
  378. Python on Cray T3E".
  379. 1) Use Cray's cc and not gcc. The latter was reported not to
  380. work by Konrad Hinsen. It may work now, but it may not.
  381. 2) To set sys.platform to something sensible, pass the
  382. following environment variable to the configure script:
  383. MACHDEP=unicosmk
  384. 2) Run configure with option "--enable-unicode=ucs4".
  385. 3) The Cray T3E does not support dynamic linking, so extension
  386. modules have to be built by adding (or uncommenting) lines
  387. in Modules/Setup. The minimum set of modules is
  388. posix, new, _sre, unicodedata
  389. On NIWA's vanilla T3E system the following have also been
  390. included successfully:
  391. _codecs, _locale, _socket, _symtable, _testcapi, _weakref
  392. array, binascii, cmath, cPickle, crypt, cStringIO, dbm
  393. errno, fcntl, grp, math, md5, operator, parser, pcre, pwd
  394. regex, rotor, select, struct, strop, syslog, termios
  395. time, timing, xreadlines
  396. 4) Once the python executable and library have been built, make
  397. will execute setup.py, which will attempt to build remaining
  398. extensions and link them dynamically. Each of these attempts
  399. will fail but should not halt the make process. This is
  400. normal.
  401. 5) Running "make test" uses a lot of resources and causes
  402. problems on our system. You might want to try running tests
  403. singly or in small groups.
  404. SGI: SGI's standard "make" utility (/bin/make or /usr/bin/make)
  405. does not check whether a command actually changed the file it
  406. is supposed to build. This means that whenever you say "make"
  407. it will redo the link step. The remedy is to use SGI's much
  408. smarter "smake" utility (/usr/sbin/smake), or GNU make. If
  409. you set the first line of the Makefile to #!/usr/sbin/smake
  410. smake will be invoked by make (likewise for GNU make).
  411. WARNING: There are bugs in the optimizer of some versions of
  412. SGI's compilers that can cause bus errors or other strange
  413. behavior, especially on numerical operations. To avoid this,
  414. try building with "make OPT=".
  415. OS/2: If you are running Warp3 or Warp4 and have IBM's VisualAge C/C++
  416. compiler installed, just change into the pc\os2vacpp directory
  417. and type NMAKE. Threading and sockets are supported by default
  418. in the resulting binaries of PYTHON15.DLL and PYTHON.EXE.
  419. Monterey (64-bit AIX): The current Monterey C compiler (Visual Age)
  420. uses the OBJECT_MODE={32|64} environment variable to set the
  421. compilation mode to either 32-bit or 64-bit (32-bit mode is
  422. the default). Presumably you want 64-bit compilation mode for
  423. this 64-bit OS. As a result you must first set OBJECT_MODE=64
  424. in your environment before configuring (./configure) or
  425. building (make) Python on Monterey.
  426. Reliant UNIX: The thread support does not compile on Reliant UNIX, and
  427. there is a (minor) problem in the configure script for that
  428. platform as well. This should be resolved in time for a
  429. future release.
  430. MacOSX: The tests will crash on both 10.1 and 10.2 with SEGV in
  431. test_re and test_sre due to the small default stack size. If
  432. you set the stack size to 2048 before doing a "make test" the
  433. failure can be avoided. If you're using the tcsh or csh shells,
  434. use "limit stacksize 2048" and for the bash shell (the default
  435. as of OSX 10.3), use "ulimit -s 2048".
  436. On naked Darwin you may want to add the configure option
  437. "--disable-toolbox-glue" to disable the glue code for the Carbon
  438. interface modules. The modules themselves are currently only built
  439. if you add the --enable-framework option, see below.
  440. On a clean OSX /usr/local does not exist. Do a
  441. "sudo mkdir -m 775 /usr/local"
  442. before you do a make install. It is probably not a good idea to
  443. do "sudo make install" which installs everything as superuser,
  444. as this may later cause problems when installing distutils-based
  445. additions.
  446. Some people have reported problems building Python after using "fink"
  447. to install additional unix software. Disabling fink (remove all
  448. references to /sw from your .profile or .login) should solve this.
  449. You may want to try the configure option "--enable-framework"
  450. which installs Python as a framework. The location can be set
  451. as argument to the --enable-framework option (default
  452. /Library/Frameworks). A framework install is probably needed if you
  453. want to use any Aqua-based GUI toolkit (whether Tkinter, wxPython,
  454. Carbon, Cocoa or anything else).
  455. You may also want to try the configure option "--enable-universalsdk"
  456. which builds Python as a universal binary with support for the
  457. i386 and PPC architetures. This requires Xcode 2.1 or later to build.
  458. See Mac/README for more information on framework and
  459. universal builds.
  460. Cygwin: With recent (relative to the time of writing, 2001-12-19)
  461. Cygwin installations, there are problems with the interaction
  462. of dynamic linking and fork(). This manifests itself in build
  463. failures during the execution of setup.py.
  464. There are two workarounds that both enable Python (albeit
  465. without threading support) to build and pass all tests on
  466. NT/2000 (and most likely XP as well, though reports of testing
  467. on XP would be appreciated).
  468. The workarounds:
  469. (a) the band-aid fix is to link the _socket module statically
  470. rather than dynamically (which is the default).
  471. To do this, run "./configure --with-threads=no" including any
  472. other options you need (--prefix, etc.). Then in Modules/Setup
  473. uncomment the lines:
  474. #SSL=/usr/local/ssl
  475. #_socket socketmodule.c \
  476. # -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
  477. # -L$(SSL)/lib -lssl -lcrypto
  478. and remove "local/" from the SSL variable. Finally, just run
  479. "make"!
  480. (b) The "proper" fix is to rebase the Cygwin DLLs to prevent
  481. base address conflicts. Details on how to do this can be
  482. found in the following mail:
  483. http://sources.redhat.com/ml/cygwin/2001-12/msg00894.html
  484. It is hoped that a version of this solution will be
  485. incorporated into the Cygwin distribution fairly soon.
  486. Two additional problems:
  487. (1) Threading support should still be disabled due to a known
  488. bug in Cygwin pthreads that causes test_threadedtempfile to
  489. hang.
  490. (2) The _curses module does not build. This is a known
  491. Cygwin ncurses problem that should be resolved the next time
  492. that this package is released.
  493. On older versions of Cygwin, test_poll may hang and test_strftime
  494. may fail.
  495. The situation on 9X/Me is not accurately known at present.
  496. Some time ago, there were reports that the following
  497. regression tests failed:
  498. test_pwd
  499. test_select (hang)
  500. test_socket
  501. Due to the test_select hang on 9X/Me, one should run the
  502. regression test using the following:
  503. make TESTOPTS='-l -x test_select' test
  504. News regarding these platforms with more recent Cygwin
  505. versions would be appreciated!
  506. Windows: When executing Python scripts on the command line using file type
  507. associations (i.e. starting "script.py" instead of "python script.py"),
  508. redirects may not work unless you set a specific registry key. See
  509. the Knowledge Base article <http://support.microsoft.com/kb/321788>.
  510. Configuring the bsddb and dbm modules
  511. -------------------------------------
  512. Beginning with Python version 2.3, the PyBsddb package
  513. <http://pybsddb.sf.net/> was adopted into Python as the bsddb package,
  514. exposing a set of package-level functions which provide
  515. backwards-compatible behavior. Only versions 3.3 through 4.4 of
  516. Sleepycat's libraries provide the necessary API, so older versions
  517. aren't supported through this interface. The old bsddb module has
  518. been retained as bsddb185, though it is not built by default. Users
  519. wishing to use it will have to tweak Modules/Setup to build it. The
  520. dbm module will still be built against the Sleepycat libraries if
  521. other preferred alternatives (ndbm, gdbm) are not found.
  522. Building the sqlite3 module
  523. ---------------------------
  524. To build the sqlite3 module, you'll need the sqlite3 or libsqlite3
  525. packages installed, including the header files. Many modern operating
  526. systems distribute the headers in a separate package to the library -
  527. often it will be the same name as the main package, but with a -dev or
  528. -devel suffix.
  529. The version of pysqlite2 that's including in Python needs sqlite3 3.0.8
  530. or later. setup.py attempts to check that it can find a correct version.
  531. Configuring threads
  532. -------------------
  533. As of Python 2.0, threads are enabled by default. If you wish to
  534. compile without threads, or if your thread support is broken, pass the
  535. --with-threads=no switch to configure. Unfortunately, on some
  536. platforms, additional compiler and/or linker options are required for
  537. threads to work properly. Below is a table of those options,
  538. collected by Bill Janssen. We would love to automate this process
  539. more, but the information below is not enough to write a patch for the
  540. configure.in file, so manual intervention is required. If you patch
  541. the configure.in file and are confident that the patch works, please
  542. send in the patch. (Don't bother patching the configure script itself
  543. -- it is regenerated each time the configure.in file changes.)
  544. Compiler switches for threads
  545. .............................
  546. The definition of _REENTRANT should be configured automatically, if
  547. that does not work on your system, or if _REENTRANT is defined
  548. incorrectly, please report that as a bug.
  549. OS/Compiler/threads Switches for use with threads
  550. (POSIX is draft 10, DCE is draft 4) compile & link
  551. SunOS 5.{1-5}/{gcc,SunPro cc}/solaris -mt
  552. SunOS 5.5/{gcc,SunPro cc}/POSIX (nothing)
  553. DEC OSF/1 3.x/cc/DCE -threads
  554. (butenhof@zko.dec.com)
  555. Digital UNIX 4.x/cc/DCE -threads
  556. (butenhof@zko.dec.com)
  557. Digital UNIX 4.x/cc/POSIX -pthread
  558. (butenhof@zko.dec.com)
  559. AIX 4.1.4/cc_r/d7 (nothing)
  560. (buhrt@iquest.net)
  561. AIX 4.1.4/cc_r4/DCE (nothing)
  562. (buhrt@iquest.net)
  563. IRIX 6.2/cc/POSIX (nothing)
  564. (robertl@cwi.nl)
  565. Linker (ld) libraries and flags for threads
  566. ...........................................
  567. OS/threads Libraries/switches for use with threads
  568. SunOS 5.{1-5}/solaris -lthread
  569. SunOS 5.5/POSIX -lpthread
  570. DEC OSF/1 3.x/DCE -lpthreads -lmach -lc_r -lc
  571. (butenhof@zko.dec.com)
  572. Digital UNIX 4.x/DCE -lpthreads -lpthread -lmach -lexc -lc
  573. (butenhof@zko.dec.com)
  574. Digital UNIX 4.x/POSIX -lpthread -lmach -lexc -lc
  575. (butenhof@zko.dec.com)
  576. AIX 4.1.4/{draft7,DCE} (nothing)
  577. (buhrt@iquest.net)
  578. IRIX 6.2/POSIX -lpthread
  579. (jph@emilia.engr.sgi.com)
  580. Building a shared libpython
  581. ---------------------------
  582. Starting with Python 2.3, the majority of the interpreter can be built
  583. into a shared library, which can then be used by the interpreter
  584. executable, and by applications embedding Python. To enable this feature,
  585. configure with --enable-shared.
  586. If you enable this feature, the same object files will be used to create
  587. a static library. In particular, the static library will contain object
  588. files using position-independent code (PIC) on platforms where PIC flags
  589. are needed for the shared library.
  590. Configuring additional built-in modules
  591. ---------------------------------------
  592. Starting with Python 2.1, the setup.py script at the top of the source
  593. distribution attempts to detect which modules can be built and
  594. automatically compiles them. Autodetection doesn't always work, so
  595. you can still customize the configuration by editing the Modules/Setup
  596. file; but this should be considered a last resort. The rest of this
  597. section only applies if you decide to edit the Modules/Setup file.
  598. You also need this to enable static linking of certain modules (which
  599. is needed to enable profiling on some systems).
  600. This file is initially copied from Setup.dist by the configure script;
  601. if it does not exist yet, create it by copying Modules/Setup.dist
  602. yourself (configure will never overwrite it). Never edit Setup.dist
  603. -- always edit Setup or Setup.local (see below). Read the comments in
  604. the file for information on what kind of edits are allowed. When you
  605. have edited Setup in the Modules directory, the interpreter will
  606. automatically be rebuilt the next time you run make (in the toplevel
  607. directory).
  608. Many useful modules can be built on any Unix system, but some optional
  609. modules can't be reliably autodetected. Often the quickest way to
  610. determine whether a particular module works or not is to see if it
  611. will build: enable it in Setup, then if you get compilation or link
  612. errors, disable it -- you're either missing support or need to adjust
  613. the compilation and linking parameters for that module.
  614. On SGI IRIX, there are modules that interface to many SGI specific
  615. system libraries, e.g. the GL library and the audio hardware. These
  616. modules will not be built by the setup.py script.
  617. In addition to the file Setup, you can also edit the file Setup.local.
  618. (the makesetup script processes both). You may find it more
  619. convenient to edit Setup.local and leave Setup alone. Then, when
  620. installing a new Python version, you can copy your old Setup.local
  621. file.
  622. Setting the optimization/debugging options
  623. ------------------------------------------
  624. If you want or need to change the optimization/debugging options for
  625. the C compiler, assign to the OPT variable on the toplevel make
  626. command; e.g. "make OPT=-g" will build a debugging version of Python
  627. on most platforms. The default is OPT=-O; a value for OPT in the
  628. environment when the configure script is run overrides this default
  629. (likewise for CC; and the initial value for LIBS is used as the base
  630. set of libraries to link with).
  631. When compiling with GCC, the default value of OPT will also include
  632. the -Wall and -Wstrict-prototypes options.
  633. Additional debugging code to help debug memory management problems can
  634. be enabled by using the --with-pydebug option to the configure script.
  635. For flags that change binary compatibility, use the EXTRA_CFLAGS
  636. variable.
  637. Profiling
  638. ---------
  639. If you want C profiling turned on, the easiest way is to run configure
  640. with the CC environment variable to the necessary compiler
  641. invocation. For example, on Linux, this works for profiling using
  642. gprof(1):
  643. CC="gcc -pg" ./configure
  644. Note that on Linux, gprof apparently does not work for shared
  645. libraries. The Makefile/Setup mechanism can be used to compile and
  646. link most extension modules statically.
  647. Coverage checking
  648. -----------------
  649. For C coverage checking using gcov, run "make coverage". This will
  650. build a Python binary with profiling activated, and a ".gcno" and
  651. ".gcda" file for every source file compiled with that option. With
  652. the built binary, now run the code whose coverage you want to check.
  653. Then, you can see coverage statistics for each individual source file
  654. by running gcov, e.g.
  655. gcov -o Modules zlibmodule
  656. This will create a "zlibmodule.c.gcov" file in the current directory
  657. containing coverage info for that source file.
  658. This works only for source files statically compiled into the
  659. executable; use the Makefile/Setup mechanism to compile and link
  660. extension modules you want to coverage-check statically.
  661. Testing
  662. -------
  663. To test the interpreter, type "make test" in the top-level directory.
  664. This runs the test set twice (once with no compiled files, once with
  665. the compiled files left by the previous test run). The test set
  666. produces some output. You can generally ignore the messages about
  667. skipped tests due to optional features which can't be imported.
  668. If a message is printed about a failed test or a traceback or core
  669. dump is produced, something is wrong. On some Linux systems (those
  670. that are not yet using glibc 6), test_strftime fails due to a
  671. non-standard implementation of strftime() in the C library. Please
  672. ignore this, or upgrade to glibc version 6.
  673. IMPORTANT: If the tests fail and you decide to mail a bug report,
  674. *don't* include the output of "make test". It is useless. Run the
  675. failing test manually, as follows:
  676. ./python ./Lib/test/test_whatever.py
  677. (substituting the top of the source tree for '.' if you built in a
  678. different directory). This runs the test in verbose mode.
  679. Installing
  680. ----------
  681. To install the Python binary, library modules, shared library modules
  682. (see below), include files, configuration files, and the manual page,
  683. just type
  684. make install
  685. This will install all platform-independent files in subdirectories of
  686. the directory given with the --prefix option to configure or to the
  687. `prefix' Make variable (default /usr/local). All binary and other
  688. platform-specific files will be installed in subdirectories if the
  689. directory given by --exec-prefix or the `exec_prefix' Make variable
  690. (defaults to the --prefix directory) is given.
  691. If DESTDIR is set, it will be taken as the root directory of the
  692. installation, and files will be installed into $(DESTDIR)$(prefix),
  693. $(DESTDIR)$(exec_prefix), etc.
  694. All subdirectories created will have Python's version number in their
  695. name, e.g. the library modules are installed in
  696. "/usr/local/lib/python<version>/" by default, where <version> is the
  697. <major>.<minor> release number (e.g. "2.1"). The Python binary is
  698. installed as "python<version>" and a hard link named "python" is
  699. created. The only file not installed with a version number in its
  700. name is the manual page, installed as "/usr/local/man/man1/python.1"
  701. by default.
  702. If you want to install multiple versions of Python see the section below
  703. entitled "Installing multiple versions".
  704. The only thing you may have to install manually is the Python mode for
  705. Emacs found in Misc/python-mode.el. (But then again, more recent
  706. versions of Emacs may already have it.) Follow the instructions that
  707. came with Emacs for installation of site-specific files.
  708. On Mac OS X, if you have configured Python with --enable-framework, you
  709. should use "make frameworkinstall" to do the installation. Note that this
  710. installs the Python executable in a place that is not normally on your
  711. PATH, you may want to set up a symlink in /usr/local/bin.
  712. Installing multiple versions
  713. ----------------------------
  714. On Unix and Mac systems if you intend to install multiple versions of Python
  715. using the same installation prefix (--prefix argument to the configure
  716. script) you must take care that your primary python executable is not
  717. overwritten by the installation of a different versio. All files and
  718. directories installed using "make altinstall" contain the major and minor
  719. version and can thus live side-by-side. "make install" also creates
  720. ${prefix}/bin/python which refers to ${prefix}/bin/pythonX.Y. If you intend
  721. to install multiple versions using the same prefix you must decide which
  722. version (if any) is your "primary" version. Install that version using
  723. "make install". Install all other versions using "make altinstall".
  724. For example, if you want to install Python 2.5, 2.6 and 3.0 with 2.6 being
  725. the primary version, you would execute "make install" in your 2.6 build
  726. directory and "make altinstall" in the others.
  727. Configuration options and variables
  728. -----------------------------------
  729. Some special cases are handled by passing options to the configure
  730. script.
  731. WARNING: if you rerun the configure script with different options, you
  732. must run "make clean" before rebuilding. Exceptions to this rule:
  733. after changing --prefix or --exec-prefix, all you need to do is remove
  734. Modules/getpath.o.
  735. --with(out)-gcc: The configure script uses gcc (the GNU C compiler) if
  736. it finds it. If you don't want this, or if this compiler is
  737. installed but broken on your platform, pass the option
  738. --without-gcc. You can also pass "CC=cc" (or whatever the
  739. name of the proper C compiler is) in the environment, but the
  740. advantage of using --without-gcc is that this option is
  741. remembered by the config.status script for its --recheck
  742. option.
  743. --prefix, --exec-prefix: If you want to install the binaries and the
  744. Python library somewhere else than in /usr/local/{bin,lib},
  745. you can pass the option --prefix=DIRECTORY; the interpreter
  746. binary will be installed as DIRECTORY/bin/python and the
  747. library files as DIRECTORY/lib/python/*. If you pass
  748. --exec-prefix=DIRECTORY (as well) this overrides the
  749. installation prefix for architecture-dependent files (like the
  750. interpreter binary). Note that --prefix=DIRECTORY also
  751. affects the default module search path (sys.path), when
  752. Modules/config.c is compiled. Passing make the option
  753. prefix=DIRECTORY (and/or exec_prefix=DIRECTORY) overrides the
  754. prefix set at configuration time; this may be more convenient
  755. than re-running the configure script if you change your mind
  756. about the install prefix.
  757. --with-readline: This option is no longer supported. GNU
  758. readline is automatically enabled by setup.py when present.
  759. --with-threads: On most Unix systems, you can now use multiple
  760. threads, and support for this is enabled by default. To
  761. disable this, pass --with-threads=no. If the library required
  762. for threads lives in a peculiar place, you can use
  763. --with-thread=DIRECTORY. IMPORTANT: run "make clean" after
  764. changing (either enabling or disabling) this option, or you
  765. will get link errors! Note: for DEC Unix use
  766. --with-dec-threads instead.
  767. --with-sgi-dl: On SGI IRIX 4, dynamic loading of extension modules is
  768. supported by the "dl" library by Jack Jansen, which is
  769. ftp'able from ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
  770. This is enabled (after you've ftp'ed and compiled the dl
  771. library) by passing --with-sgi-dl=DIRECTORY where DIRECTORY
  772. is the absolute pathname of the dl library. (Don't bother on
  773. IRIX 5, it already has dynamic linking using SunOS style
  774. shared libraries.) THIS OPTION IS UNSUPPORTED.
  775. --with-dl-dld: Dynamic loading of modules is rumored to be supported
  776. on some other systems: VAX (Ultrix), Sun3 (SunOS 3.4), Sequent
  777. Symmetry (Dynix), and Atari ST. This is done using a
  778. combination of the GNU dynamic loading package
  779. (ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z) and an
  780. emulation of the SGI dl library mentioned above (the emulation
  781. can be found at
  782. ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z). To
  783. enable this, ftp and compile both libraries, then call
  784. configure, passing it the option
  785. --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY where DL_DIRECTORY is
  786. the absolute pathname of the dl emulation library and
  787. DLD_DIRECTORY is the absolute pathname of the GNU dld library.
  788. (Don't bother on SunOS 4 or 5, they already have dynamic
  789. linking using shared libraries.) THIS OPTION IS UNSUPPORTED.
  790. --with-libm, --with-libc: It is possible to specify alternative
  791. versions for the Math library (default -lm) and the C library
  792. (default the empty string) using the options
  793. --with-libm=STRING and --with-libc=STRING, respectively. For
  794. example, if your system requires that you pass -lc_s to the C
  795. compiler to use the shared C library, you can pass
  796. --with-libc=-lc_s. These libraries are passed after all other
  797. libraries, the C library last.
  798. --with-libs='libs': Add 'libs' to the LIBS that the python interpreter
  799. is linked against.
  800. --with-cxx-main=<compiler>: If you plan to use C++ extension modules,
  801. then -- on some platforms -- you need to compile python's main()
  802. function with the C++ compiler. With this option, make will use
  803. <compiler> to compile main() *and* to link the python executable.
  804. It is likely that the resulting executable depends on the C++
  805. runtime library of <compiler>. (The default is --without-cxx-main.)
  806. There are platforms that do not require you to build Python
  807. with a C++ compiler in order to use C++ extension modules.
  808. E.g., x86 Linux with ELF shared binaries and GCC 3.x, 4.x is such
  809. a platform. We recommend that you configure Python
  810. --without-cxx-main on those platforms because a mismatch
  811. between the C++ compiler version used to build Python and to
  812. build a C++ extension module is likely to cause a crash at
  813. runtime.
  814. The Python installation also stores the variable CXX that
  815. determines, e.g., the C++ compiler distutils calls by default
  816. to build C++ extensions. If you set CXX on the configure command
  817. line to any string of non-zero length, then configure won't
  818. change CXX. If you do not preset CXX but pass
  819. --with-cxx-main=<compiler>, then configure sets CXX=<compiler>.
  820. In all other cases, configure looks for a C++ compiler by
  821. some common names (c++, g++, gcc, CC, cxx, cc++, cl) and sets
  822. CXX to the first compiler it finds. If it does not find any
  823. C++ compiler, then it sets CXX="".
  824. Similarly, if you want to change the command used to link the
  825. python executable, then set LINKCC on the configure command line.
  826. --with-pydebug: Enable additional debugging code to help track down
  827. memory management problems. This allows printing a list of all
  828. live objects when the interpreter terminates.
  829. --with(out)-universal-newlines: enable reading of text files with
  830. foreign newline convention (default: enabled). In other words,
  831. any of \r, \n or \r\n is acceptable as end-of-line character.
  832. If enabled import and execfile will automatically accept any newline
  833. in files. Python code can open a file with open(file, 'U') to
  834. read it in universal newline mode. THIS OPTION IS UNSUPPORTED.
  835. --with-tsc: Profile using the Pentium timestamping counter (TSC).
  836. --with-system-ffi: Build the _ctypes extension module using an ffi
  837. library installed on the system.
  838. Building for multiple architectures (using the VPATH feature)
  839. -------------------------------------------------------------
  840. If your file system is shared between multiple architectures, it
  841. usually is not necessary to make copies of the sources for each
  842. architecture you want to support. If the make program supports the
  843. VPATH feature, you can create an empty build directory for each
  844. architecture, and in each directory run the configure script (on the
  845. appropriate machine with the appropriate options). This creates the
  846. necessary subdirectories and the Makefiles therein. The Makefiles
  847. contain a line VPATH=... which points to a directory containing the
  848. actual sources. (On SGI systems, use "smake -J1" instead of "make" if
  849. you use VPATH -- don't try gnumake.)
  850. For example, the following is all you need to build a minimal Python
  851. in /usr/tmp/python (assuming ~guido/src/python is the toplevel
  852. directory and you want to build in /usr/tmp/python):
  853. $ mkdir /usr/tmp/python
  854. $ cd /usr/tmp/python
  855. $ ~guido/src/python/configure
  856. [...]
  857. $ make
  858. [...]
  859. $
  860. Note that configure copies the original Setup file to the build
  861. directory if it finds no Setup file there. This means that you can
  862. edit the Setup file for each architecture independently. For this
  863. reason, subsequent changes to the original Setup file are not tracked
  864. automatically, as they might overwrite local changes. To force a copy
  865. of a changed original Setup file, delete the target Setup file. (The
  866. makesetup script supports multiple input files, so if you want to be
  867. fancy you can change the rules to create an empty Setup.local if it
  868. doesn't exist and run it with arguments $(srcdir)/Setup Setup.local;
  869. however this assumes that you only need to add modules.)
  870. Also note that you can't use a workspace for VPATH and non VPATH builds. The
  871. object files left behind by one version confuses the other.
  872. Building on non-UNIX systems
  873. ----------------------------
  874. For Windows (2000/NT/ME/98/95), assuming you have MS VC++ 7.1, the
  875. project files are in PCbuild, the workspace is pcbuild.dsw. See
  876. PCbuild\readme.txt for detailed instructions.
  877. For other non-Unix Windows compilers, in particular MS VC++ 6.0 and
  878. for OS/2, enter the directory "PC" and read the file "readme.txt".
  879. For the Mac, a separate source distribution will be made available,
  880. for use with the CodeWarrior compiler. If you are interested in Mac
  881. development, join the PythonMac Special Interest Group
  882. (http://www.python.org/sigs/pythonmac-sig/, or send email to
  883. pythonmac-sig-request@python.org).
  884. Of course, there are also binary distributions available for these
  885. platforms -- see http://www.python.org/.
  886. To port Python to a new non-UNIX system, you will have to fake the
  887. effect of running the configure script manually (for Mac and PC, this
  888. has already been done for you). A good start is to copy the file
  889. pyconfig.h.in to pyconfig.h and edit the latter to reflect the actual
  890. configuration of your system. Most symbols must simply be defined as
  891. 1 only if the corresponding feature is present and can be left alone
  892. otherwise; however the *_t type symbols must be defined as some
  893. variant of int if they need to be defined at all.
  894. For all platforms, it's important that the build arrange to define the
  895. preprocessor symbol NDEBUG on the compiler command line in a release
  896. build of Python (else assert() calls remain in the code, hurting
  897. release-build performance). The Unix, Windows and Mac builds already
  898. do this.
  899. Miscellaneous issues
  900. ====================
  901. Emacs mode
  902. ----------
  903. There's an excellent Emacs editing mode for Python code; see the file
  904. Misc/python-mode.el. Originally written by the famous Tim Peters, it
  905. is now maintained by the equally famous Barry Warsaw (it's no
  906. coincidence that they now both work on the same team). The latest
  907. version, along with various other contributed Python-related Emacs
  908. goodies, is online at http://www.python.org/emacs/python-mode. And
  909. if you are planning to edit the Python C code, please pick up the
  910. latest version of CC Mode http://www.python.org/emacs/cc-mode; it
  911. contains a "python" style used throughout most of the Python C source
  912. files. (Newer versions of Emacs or XEmacs may already come with the
  913. latest version of python-mode.)
  914. Tkinter
  915. -------
  916. The setup.py script automatically configures this when it detects a
  917. usable Tcl/Tk installation. This requires Tcl/Tk version 8.0 or
  918. higher.
  919. For more Tkinter information, see the Tkinter Resource page:
  920. http://www.python.org/topics/tkinter/
  921. There are demos in the Demo/tkinter directory.
  922. Note that there's a Python module called "Tkinter" (capital T) which
  923. lives in Lib/lib-tk/Tkinter.py, and a C module called "_tkinter"
  924. (lower case t and leading underscore) which lives in
  925. Modules/_tkinter.c. Demos and normal Tk applications import only the
  926. Python Tkinter module -- only the latter imports the C _tkinter
  927. module. In order to find the C _tkinter module, it must be compiled
  928. and linked into the Python interpreter -- the setup.py script does
  929. this. In order to find the Python Tkinter module, sys.path must be
  930. set correctly -- normal installation takes care of this.
  931. Distribution structure
  932. ----------------------
  933. Most subdirectories have their own README files. Most files have
  934. comments.
  935. Demo/ Demonstration scripts, modules and programs
  936. Doc/ Documentation sources (reStructuredText)
  937. Grammar/ Input for the parser generator
  938. Include/ Public header files
  939. LICENSE Licensing information
  940. Lib/ Python library modules
  941. Mac/ Macintosh specific resources
  942. Makefile.pre.in Source from which config.status creates the Makefile.pre
  943. Misc/ Miscellaneous useful files
  944. Modules/ Implementation of most built-in modules
  945. Objects/ Implementation of most built-in object types
  946. PC/ Files specific to PC ports (DOS, Windows, OS/2)
  947. PCbuild/ Build directory for Microsoft Visual C++
  948. Parser/ The parser and tokenizer and their input handling
  949. Python/ The byte-compiler and interpreter
  950. README The file you're reading now
  951. RISCOS/ Files specific to RISC OS port
  952. Tools/ Some useful programs written in Python
  953. pyconfig.h.in Source from which pyconfig.h is created (GNU autoheader output)
  954. configure Configuration shell script (GNU autoconf output)
  955. configure.in Configuration specification (input for GNU autoconf)
  956. install-sh Shell script used to install files
  957. setup.py Python script used to build extension modules
  958. The following files will (may) be created in the toplevel directory by
  959. the configuration and build processes:
  960. Makefile Build rules
  961. Makefile.pre Build rules before running Modules/makesetup
  962. buildno Keeps track of the build number
  963. config.cache Cache of configuration variables
  964. pyconfig.h Configuration header
  965. config.log Log from last configure run
  966. config.status Status from last run of the configure script
  967. getbuildinfo.o Object file from Modules/getbuildinfo.c
  968. libpython<version>.a The library archive
  969. python The executable interpreter
  970. reflog.txt Output from running the regression suite with the -R flag
  971. tags, TAGS Tags files for vi and Emacs
  972. That's all, folks!
  973. ------------------
  974. --Guido van Rossum (home page: http://www.python.org/~guido/)