How to best manage python interpreters for stability (dev)?

Have been investigating, as I didn’t know which to try.
Here’s some info:


EDIT1:
Pyenv builds (compiles) a completely separate Python interpreter
for each version of Python that you install with it, in any non-system location.
It does not link to system python libraries.

EDIT2:
With pyenv you can create as many versions of Python interpreter as you want,
and for each of those versions you can make as many environments as you want.
Pyenv is well integrated with ‘virtualenv’, through pyenv-virtualenv, so consider
using ‘pyenv-virtualenv’ to make these environments, rather then ‘venv’.


virtualenv :
creates an environment that

  1. has its own installation directories,
  2. does not share libraries with other virtualenv environments
  3. optionally does not access system python libraries

The built-in ‘venv’ does not have that 3rd capability.

pyenv :

  • Is made from pure shell scripts (no dependency on python)
  • Lets you change the “global” Python version, but on a per-user basis,
    so the operating system still uses “system python” in the normal way.
  • Provides support for per-project Python versions.

pyenv-virtualenv :
is a pyenv plugin that provides features to manage virtualenvs

This article favors pyenv, and explains why very well.
He decides against using Anaconda and Miniconda because they are both very big,
and also because he thinks it would become confusing to have
2 repositories and 2 methods of installing packages (pip and conda).

2 Likes