# Python
# ======
# Below are general details about installing Python, and here are the
# version-specific HOWTOs:
#
# Python 2.7.x
# Python 3.8.x
# Python 3.9.x
# Slackware packages:
#
# Slackware 14.0: python 2.7.3
# Slackware 14.1: python 2.7.5
# Slackware 14.2: python 2.7.11
# Slackware 15.0: python2 2.7.18, python3 3.9.10
#
# Some of them include security-patched versions in 'patches'.
#
# Slackware 9.1 and up also include 'python-demo' and 'python-tools'
# packages, but they were merged back into 'python' in 11.0
#
# Slackware 14.2 and up include python-pillow (instead of pil) and
# python-setuptools packages. Those are covered here:
# PIL
# setuptools
# If you are using Mailman, certbot, or other Python based software,
# always check supported Python versions before installing.
# If you are using Mailman 2.x, you need Python 2.7
# If you are using Mailman 3.x, you need Python >= 3.4 for the core and
# 2.7 for the web UI and archiver (it may be >= 3.x for all now, it's been a
# while)
# As long as your shebang (1st line of a script) uses the path to the
# specific version, you should be able to have multiple major versions of
# Python installed.
#
# #!/usr/bin/python2
# #!/usr/bin/python2.7
# #!/usr/bin/python3
# #!/usr/bin/python3.8
# #!/usr/bin/python3.9
#
# If you have multiple versions of Python installed, and will be actively
# using them, you should also run programs like 'pip' as the specific
# version, like 'pip2.7', 'pip3', 'pip3.9', or run it like this:
# /usr/bin/python3.9 -m pip install --upgrade pip
# I don't do this when upgrading from one minor version to another (3.9.20 to
# 3.9.21), but when I upgrade from one major version to another (3.8.x to
# 3.9.x) I sometimes like to blow everything away from the old version(s) to
# make sure there aren't old files lying around that will cause problems
# later.
#
# This is generally not needed, binaries will be named something like
# /usr/bin/python3.9 and /usr/bin/python will be a symlink to that, each one
# will have it's own /usr/lib64/pythonX.X
# Unless you have an embedded system that is tight on disk space, I wouldn't
# worry about it. If you do want to, skip down to the bottom if you want to
# zap everything before proceeding ...which may break lots of things for you
# that are running now or that were installed when there was an older version
# of Python.