Getting a sane Python3 runtime on a Mac can be tedious. The most painless way I have found thus far installing a Python3 package from python.org and, from there, installing two additional packages into the system directory: pip
and pipx
.
Install Python with a package from python.org. This post uses 3.6.8: https://www.python.org/downloads/release/python-368/
At this point, close the current shell and launch a new shell. This will ensure you have Python 3.6 in your PATH
; you should see something similar to:
$ which python3.6
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
pip
is the easiest, modern way to install 3rd party Python packages on your system. It can be installed with the command:
easy_install-3.6 pip
Once installed you should see its location with the command:
$ which pip
/Library/Frameworks/Python.framework/Versions/3.6/bin/pip
pipx
creates isolated environments for python applications. That way, when 3rd party applications require different versions of a common package, the system doesn’t get polluted and unstable:
pip install pipx
Once pipx is installed, its bin/
directory can be added to the PATH
with the command:
pipx ensurepath
These are the only packages installed at the system level. Now, everything else is installed with pipx
Like with the Python install above, close out of the current shell and launch a new one. When you run echo $PATH
you should see ${HOME}/.local/bin
in the path.
There is one important package for development that should be installed: pipenv
:
pipx install pipenv
Once that command is run, which pipenv
should produce something similar to:
$ which pipenv
${HOME}/.local/bin/pipenv
From here, development on a project should be done with pipenv
Another useful 3rd party application is the AWS command line tools. With the install covered here, that can be installed with the command pipx install awscli
, and it will show up like so:
$ which aws
/Users/berto/.local/bin/aws