Advertisement
Guest User

Untitled

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