Pyenv Concepts: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
(Created page with "=Internal= * pyenv")
 
Line 1: Line 1:
=Internal=
=Internal=
* [[Pyenv#Subjects|pyenv]]
* [[Pyenv#Subjects|pyenv]]
=Overview=
<code>pyenv</code> is a tool that let you switch between multiple version of Python.
<code>pyenv</code> 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.
<code>pyenv</code> works by intercepting Python commands using shim executables injected in <code>PATH</code>, determines which Python version has been specified by your application and passes the command along to the correct Python installation.
=Version Selection=
The intercepting <code>pyenv</code>  shim determines what Python version is needed by looking at the following sources, in this order:
# <CODE>PYENV_VERSION</CODE>
# The application-specific <code>.python-version</code> in the current directory. 
# The first <code>.python-version</code> file found by searching each parent directory up to the filesystem root.
# The global <code>$(pyenv root)/version</code> file.
=<tt>pyenv</tt> and <code>brew</code>=
<font color=darkkhaki>TO PROCESS: https://stackoverflow.com/a/30580166</font>

Revision as of 00:30, 3 November 2023

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:

  1. PYENV_VERSION
  2. The application-specific .python-version in the current directory.
  3. The first .python-version file found by searching each parent directory up to the filesystem root.
  4. The global $(pyenv root)/version file.

pyenv and brew

TO PROCESS: https://stackoverflow.com/a/30580166