Upgrade Anaconda for latest Python

Note: it may be necessary to reinstall Anaconda/Miniconda from scratch if packages break during a Python version upgrade. Consider this before attempting an in-place Python upgrade. There is often a couple month delay between a major Python release (e.g. Python 3.7 to Python 3.8) and Anaconda defaulting to this version. We strongly suggest waiting until the new Python version is the default before trying to upgrade, as many packages many be missing or broken until then.

For example, upgrade to Python 3.7 by

conda install python=3.7

Python 3.7 added functionality includes:

  • pathlib in stdlib. This gets rid of typical use of verbose and awkward os.path functions.
  • f-strings, which allow f'This is {weight} kg for {price} dollars. instead of 'This is {} kg for {} dollars'.format(weight,price)
  • UTF8 from the command line e.g. for argparse

MacOS Tcl/Tk

Batteries-included Tcl/Tk for MacOS ≥ 10.9 (Mavericks). This is an important convenience for CPython users, who previously had to make a separate install.

GUI advice

For interactive data science GUI applications, we recommend Jupyter. GUIs have considerable overhead to maintain, and suffer bit rot far faster than the underlying code. At the very least, be sure your code is usable from the command line and/or as a plain importable module without requiring a graphics library. In stripped-down cloud / embedded applications, unused graphical imports cause stability problems and considerable startup lag.


Every popular Python package supports Python 3.7. The Scipy stack and Spyder support includes pathlib.