Me: I'd like to 3D print something.
OctoPrint: There's a new version of OctoPrint! You should upgrade!
Me: OK
OctoPrint: Upgrade complete. WARNING: You're using Python 2.x, which is guaranteed to break at the most inopportune moment imaginable. Upgrade to Python 3.x, and then run octoprint-upgrade-script.py to configure OctoPrint to use Python 3.
Me: But I already have Python 3.
OctoPrint: You have Python 3.5.1. You need Python 3.6 or later.
Me: Internet, how do I upgrade Python 3?
Internet: sudo apt-get install --update python3
Me: sudo apt-get install --update python3
Internet: You already have the latest version for Raspberry Pi (3.5.1).
Me: Internet, how do I upgrade Python 3.5.1 on a Raspberry Pi?
Internet: Uninstall Python 3.5.1 and build the latest version from source.
Me: sudo apt-get remove python3
Me: wget ... tar ... configure ... make ... blahblahblah
Raspberry Pi: Success. (Disregard the 5,000-or-so warning messages when building Python.)
Me: python3 octoprint-upgrade-script.py
Script: Error: Module "requests" not found.
Me: python3 -m pip install requests
Python: Can't download requests because the Python SSL module isn't available.
Me: Internet, how do I install the Python SSL module?
Internet: apt-get install these_25_packages
Me: apt-get install these_25_packages
Raspberry Pi: Success.
Me: python3 -m pip install requests
Python: Still no SSL module.
Me: Internet, what's the deal?
Internet: Oh, you have to install these_25_packages before building Python, and then rebuild Python.
Me: Linux, seriously, this is why people still use Windows.