{\rtf1\ansi\ansicpg1252\cocoartf1347\cocoasubrtf570
{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fmodern\fcharset0 CourierNewPSMT;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww13380\viewh14600\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\f0\fs24 \cf0 This package will install Python $FULL_VERSION for Mac OS X $MACOSX_DEPLOYMENT_TARGET for the following architecture(s): $ARCHITECTURES.\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\b \cf0 \ul \ulc0 Which installer variant should I use?
\b0 \ulnone \
\
Python.org provides two installer variants for download: one that installs a 
\i 64-bit/32-bit Intel
\i0  Python capable of running on 
\i Mac OS X 10.6 (Snow Leopard)
\i0  or later; and one that installs a 
\i 32-bit-only (Intel and PPC)
\i0  Python capable of running on 
\i Mac OS X 10.5 (Leopard)
\i0  or later.  This ReadMe was installed with the 
\i $MACOSX_DEPLOYMENT_TARGET
\i0  variant.  Unless you are installing to an 10.5 system or you need to build applications that can run on 10.5 systems, use the 10.6 variant if possible.  There are some additional operating system functions that are supported starting with 10.6 and you may see better performance using 64-bit mode.  By default, Python will automatically run in 64-bit mode if your system supports it.  Also see 
\i Certificate verification and OpenSSL
\i0  below.  The Pythons installed by these installers are built with private copies of some third-party libraries not included with or newer than those in OS X itself.  The list of these libraries varies by installer variant and is included at the end of the License.rtf file.
\b \ul \ulc0 \
\
Update your version of Tcl/Tk to use IDLE or other Tk applications
\b0 \ulnone \
\
To use IDLE or other programs that use the Tkinter graphical user interface toolkit, you need to install a newer third-party version of the 
\i Tcl/Tk
\i0  frameworks.  Visit {\field{\*\fldinst{HYPERLINK "https://www.python.org/download/mac/tcltk/"}}{\fldrslt https://www.python.org/download/mac/tcltk/}} for current information about supported and recommended versions of 
\i Tcl/Tk
\i0  for this version of Python and of Mac OS X.\

\b \ul \
Installing on OS X 10.8 (Mountain Lion) or later systems\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
\cf0 \ulnone [CHANGED for Python 3.4.2]
\b0 \
\
As of Python 3.4.2, installer packages from python.org are now compatible with the Gatekeeper security feature introduced in OS X 10.8.   Downloaded packages can now be directly installed by double-clicking with the default system security settings.  Python.org installer packages for OS X are signed with the Developer ID of the builder, as identified on {\field{\*\fldinst{HYPERLINK "https://www.python.org/downloads/"}}{\fldrslt the download page}} for this release.  To inspect the digital signature of the package, click on the lock icon in the upper right corner of the 
\i Install Python
\i0  installer window.  Refer to Apple\'92s support pages for {\field{\*\fldinst{HYPERLINK "http://support.apple.com/kb/ht5290"}}{\fldrslt more information on Gatekeeper}}.\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\b \cf0 \ul Simplified web-based installs\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
\cf0 \ulnone [NEW for Python 3.4.2]
\b0 \
\
With the change to the newer flat format installer package, the download file now has a 
\f1 .pkg
\f0  extension as it is no longer necessary to embed the installer within a disk image (
\f1 .dmg
\f0 ) container.   If you download the Python installer through a web browser, the OS X installer application may open automatically to allow you to perform the install.  If your browser settings do not allow automatic open, double click on the downloaded installer file.\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\b \cf0 \ul New Installation Options and Defaults\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
\cf0 \ulnone [NEW for Python 3.4.0]
\b0 \
\
The Python installer now includes an option to automatically install or upgrade 
\f1 pip
\f0 , a tool for installing and managing Python packages.  This option is enabled by default and no Internet access is required.  If you do not want the installer to do this, select the 
\i Customize
\i0  option at the 
\i Installation Type
\i0  step and uncheck the 
\i Install or ugprade pip
\i0  option.\
\
To make it easier to use scripts installed by third-party Python packages, with 
\f1 pip
\f0  or by other means, the 
\i Shell profile updater
\i0  option is now enabled by default, as has been the case with Python 2.7.x installers. You can also turn this option off by selecting 
\i Customize
\i0  and unchecking the 
\i Shell profile updater
\i0  option. You can also update your shell profile later by launching the 
\i Update Shell Profile
\i0  command found in the 
\f1 /Applications/Python $VERSION 
\f0 folder.  You may need to start a new terminal window for the changes to take effect.\
\
For other changes in this release, see the Release Notes link for this release at {\field{\*\fldinst{HYPERLINK "https://www.python.org/downloads/"}}{\fldrslt https://www.python.org/downloads/}}.\
\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\b \cf0 \ul Certificate verification and OpenSSL\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
\cf0 \ulnone [CHANGED for Python 3.4.3]
\b0 \
\
Python 3.4.3 includes a number of network security enhancements that have been approved for inclusion in Python 3.4 maintenance releases.  {\field{\*\fldinst{HYPERLINK "https://www.python.org/dev/peps/pep-0476/"}}{\fldrslt PEP 476}} changes several standard library modules, like 
\i httplib
\i0 , 
\i urllib
\i0 , and 
\i xmlrpclib
\i0 , to by default verify certificates presented by servers over secure (TLS) connections.  The verification is performed by the OpenSSL libraries that Python is linked to.  Prior to 3.4.3, the python.org installers dynamically linked with Apple-supplied OpenSSL libraries shipped with OS X.  OS X provides a multiple level security framework that stores trust certificates in system and user keychains managed by the 
\i Keychain Access 
\i0 application and the 
\i security
\i0  command line utility.\
\
For OS X 10.5, Apple provides 
\i OpenSSL 0.9.7
\i0  libraries.  This version of Apple's OpenSSL 
\b does not
\b0  use the certificates from the system security framework, even when used on newer versions of OS X.  Instead it consults a traditional OpenSSL concatenated certificate file (
\i cafile
\i0 ) or certificate directory (
\i capath
\i0 ), located in 
\f1 /System/Library/OpenSSL
\f0 .  These directories are typically empty and not managed by OS X; you must manage them yourself or supply your own SSL contexts.  OpenSSL 0.9.7 is obsolete by current security standards, lacking a number of important features found in later versions.  Among the problems this causes is the inability to verify higher-security certificates now used by python.org services, including 
\i t{\field{\*\fldinst{HYPERLINK "https://pypi.python.org/pypi"}}{\fldrslt he Python Package Index, PyPI}}
\i0 .  To solve this problem, as of 3.4.3 the 
\i 10.5+ 32-bit-only python.org variant
\i0  is linked with a private copy of 
\i OpenSSL 1.0
\i0 ; it consults the same default certificate directory, 
\f1 /System/Library/OpenSSL
\f0 .   As before, it is still necessary to manage certificates yourself when you use this Python variant and, with certificate verification now enabled by default, you may now need to take additional steps to ensure your Python programs have access to CA certificates you trust.  If you use this Python variant to build standalone applications with third-party tools like {\field{\*\fldinst{HYPERLINK "https://pypi.python.org/pypi/py2app/"}}{\fldrslt 
\f1 py2app}}, you may now need to bundle CA certificates in them or otherwise supply non-default SSL contexts.\
\
For OS X 10.6+, Apple also provides 
\i OpenSSL
\i0  
\i 0.9.8 libraries
\i0 .  Apple's 0.9.8 version includes an important additional feature: if a certificate cannot be verified using the manually administered certificates in 
\f1 /System/Library/OpenSSL
\f0 , the certificates managed by the system security framework In the user and system keychains are also consulted (using Apple private APIs).  For this reason, for 3.4.3 the 
\i 64-bit/32-bit 10.6+ python.org variant
\i0  continues to be dynamically linked with Apple's OpenSSL 0.9.8 since it was felt that the loss of the system-provided certificates and management tools outweighs the additional security features provided by newer versions of OpenSSL.  This will likely change in future releases of the python.org installers as Apple has deprecated use of the system-supplied OpenSSL libraries.  If you do need features from newer versions of OpenSSL, there are third-party OpenSSL wrapper packages available through 
\i PyPI
\i0 .\
\
The bundled 
\f1 pip
\f0  included with 3.4.3 has its own default certificate store for verifying download connections.\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\b \cf0 \ul \
Python 3 and Python 2 Co-existence\

\b0 \ulnone \
Python.org Python $VERSION and 2.7.x versions can both be installed on your system and will not conflict. Command names for Python 3 contain a 3 in them, 
\f1 python3
\f0  (or
\f1  python$VERSION
\f0 ), 
\f1 idle3
\f0  (or i
\f1 dle$VERSION
\f0 ), 
\f1 pip3
\f0  (or 
\f1 pip$VERSION
\f0 ), etc.  Python 2.7 command names contain a 2 or no digit: 
\f1 python2
\f0  (or 
\f1 python2.7
\f0  or 
\f1 python
\f0 ), 
\f1 idle2
\f0  (or 
\f1 idle2.7
\f0  or 
\f1 idle
\f0 ), etc.\
}