Pyenv Concepts
Internal
Overview
pyenv
is a tool that let you switch between multiple version of Python.
pyenv
lets you change the global Python version on a per-user basis. It also provides support for per-project Python versions. It allows you to override the Python version with an environment variables.
pyenv
works by intercepting Python commands using shim executables injected in PATH
, determines which Python version has been specified by your application and passes the command along to the correct Python installation.
Version Selection
The intercepting pyenv
shim determines what Python version is needed by looking at the following sources, in this order:
PYENV_VERSION
- The application-specific
.python-version
in the current directory. - The first
.python-version
file found by searching each parent directory up to the filesystem root. - The global
$(pyenv root)/version
file.
Also see pyenv shell
, pyenv local
, and pyenv global
commands.
pyenv and brew
brew
also lets you install different Python versions on the same system:
TO PROCESS: https://stackoverflow.com/a/30580166
What Happens if pyenv Installs a new Python Version
pyenv install 3.9.9 python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.9.9.tar.xz... -> https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz Installing Python-3.9.9... python-build: use tcl-tk from homebrew python-build: use readline from homebrew python-build: use ncurses from homebrew python-build: use zlib from xcode sdk Installed Python-3.9.9 to /Users/ovidiu/.pyenv/versions/3.9.9