This package will install Python $FULL_VERSION for macOS $MACOSX_DEPLOYMENT_TARGET for the following architecture(s): $ARCHITECTURES.

macOS 10.15 Catalina Support

At the time of the release of this release candidate, the next release of macOS, 10.15 Catalina, was still in public beta.  Any updates needed to support 10.15 will be provided after it releases.

Which installer variant should I use?

CHANGED in 3.7.4:  The 10.6+ 64-/32-bit installer variant  is being deprecated.  Python 3.8.0 will not include a binary installer for 10.6+ and future bugfix releases of 3.7.x may not, either.  Mac OS X 10.6 Snow Leopard was released in 2009 and has not been supported by Apple for many years including lack of security updates.  It is becoming increasingly difficult to ensure new Python features and bug fixes are compatible with such old systems especially with Apple's deprecation and removal of 32-bit support in recent and upcoming macOS releases.  We believe that there is now very little usage of this installer variant and so we would like to focus our resources on supporting newer systems.  We do not plan to intentionally break Python support on 10.6 and we will consider bug fixes for problems found when building from source on 10.6. 

For Python.3.7, python.org currently provides two installer variants for download: one that installs a 64-bit-only Python capable of running on macOS 10.9 (Mavericks) or later; and one that installs a 64-bit/32-bit Intel Python capable of running on macOS 10.6 (Snow Leopard) or later.  (This ReadMe was installed with the $MACOSX_DEPLOYMENT_TARGET variant.)  If you are running on macOS 10.9 or later and if you have no need for compatibility with older systems, use the 10.9 variant.  Use the 10.6 variant if you are running on macOS 10.6 through 10.8 or if you want to produce standalone applications that can run on systems from 10.6.  The Pythons installed by these installers are built with private copies of some third-party libraries not included with or newer than those in macOS itself.  The list of these libraries varies by installer variant and is included at the end of the License.rtf file.

Certificate verification and OpenSSL

This variant of Python 3.7 includes its own private copy of OpenSSL 1.1.1.  The deprecated Apple-supplied OpenSSL libraries are no longer used.  This means that the trust certificates in system and user keychains managed by the Keychain Access application and the security command line utility are no longer used as defaults by the Python ssl module.  A sample command script is included in /Applications/Python 3.7 to install a curated bundle of default root certificates from the third-party certifi package (https://pypi.org/project/certifi/).  If you choose to use certifi, you should consider subscribing to the project's email update service to be notified when the certificate bundle is updated.

The bundled pip included with this installer has its own default certificate store for verifying download connections.

CHANGED in 3.7.4:  OpenSSL has been updated from 1.1.0 to 1.1.1.

Using IDLE or other Tk applications 

Both installer variants now come with their own private version of Tcl/Tk 8.6. They no longer use system-supplied or third-party supplied versions of Tcl/Tk as in previous releases.

Other changes

CHANGED in 3.7.4:  SQLite has been updated from 3.22.0 to 3.28.0

For other changes in this release, see the What's new section in the Documentation Set for this release and its Release Notes link at https://www.python.org/downloads/.

Python 3 and Python 2 Co-existence

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, python3 (or python$VERSION), idle3 (or idle$VERSION), pip3 (or pip$VERSION), etc.  Python 2.7 command names contain a 2 or no digit: python2 (or python2.7 or python), idle2 (or idle2.7 or idle), etc.