[PYTHON] Mécanisme de pyenv et virtualenv

Objectif de cet article

Expliquez comment pyenv et virtualenv créent un environnement d'exécution Python. Il n'y a aucune mention particulière de la façon de l'installer ou de l'utiliser. L'explication est une traduction du site de référence, et il n'y a pas d'autres informations.

Site de référence

yyuu/pyenv virtualenv

pyenv

Aperçu

Un outil pour utiliser différentes versions de python dans le même terminal. Vous pouvez définir la version de python à utiliser pour chaque répertoire de travail.

Comment ça fonctionne

Composant

Chaque version de python installée par pyenv est enregistrée comme suit. À propos, le nom de la version spécifié par pyenv est le même que le nom du dossier.

pyenv_structure


$HOME/.pyenv/shims/               #Le cœur du fonctionnement de pyenv. Chaque commande de shim est placée.
          |-/versions/2.7.8/      #Interpréteur Python installé
                   |-/3.4.2/      #2 à titre d'exemple.7.8, 3.4.2, pypy-2.4.Si vous installez 0, cela ressemblera à ceci
                   |-/pypy-2.4.0/
          |-/version              #Fichier d'informations de version pour python utilisé dans global

Vous pouvez également utiliser la commande python local pour placer le fichier .python-version dans n'importe quel répertoire de travail.

La commande python global édite le fichier $ HOME / .pyenv / version.

Comme son nom l'indique, les fichiers .python-version et $ HOME / .pyenv / version décrivent uniquement les informations de version de python à utiliser.

Et la commande shim est créée sous $ HOME / .pyenv / shims /. Cela sera expliqué dans la section suivante.

mécanisme de changement de cale et de version

La commande shim porte le même nom que la commande python (python, pip, etc.) et est un groupe de commandes situé dans $ HOME / .pyenv / shims /. En un mot, c'est une commande qui exécute la commande avec le même nom de la version correspondante après avoir recherché les informations de version. La procédure spécifique est la suivante.

  1. Examinez la variable d'environnement PYENV_VERSION et utilisez les informations de version, le cas échéant.

  2. S'il n'y a aucune information dans la variable d'environnement PYENV_VERSION, si le fichier .python-version se trouve dans le même répertoire, utilisez la version qui y est décrite.

  3. Si le fichier .python-version n'existe pas dans le même répertoire, recherchez dans le répertoire parent le fichier .python-version.

  4. Si les informations de version ne sont pas trouvées par la recherche ci-dessus, utilisez les informations décrites dans le fichier ~ / .pyenv / version. Si vous n'avez même pas ce fichier, utilisez Python dans la norme système.

Pour utiliser cette commande shim, vous devez définir $ HOME / .pyenv / shims / à gauche du PATH où se trouvent les commandes standard du système.

Exemple


~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin

Au fait, pyenv rehash est une commande pour reconfigurer cette commande shims basée sur le groupe de versions de python actuellement installé.

virtualenv

Répertoire créé avec virtualenv

Vous pouvez créer un environnement d'exécution Python dans n'importe quel répertoire avec la commande virtualenv. Cette structure de répertoire est simplement la même que le répertoire de l'interpréteur Python. Les commandes Python semblent faire référence aux répertoires include, lib dans leur répertoire parent. Ainsi, virtualenv crée simplement cette structure de répertoires et la remplit avec les éléments dont elle a besoin. Au fait, les commandes Python etc. n'ont que des liens symboliques. Si vous voulez copier la chose réelle, utilisez l'option --always-copy.

# $VIRTUAL_ENV est un répertoire créé par la commande virtualenv
$VIRTUAL_ENV/bin/              # Python,Fichiers d'exécution tels que pip
          |-/include/          #L'en-tête C est placé
          |-/lib/              #Des bibliothèques supplémentaires seront placées
              |-/pythonX.X/site-package 

Variables d'environnement définies par le script d'activation

Ajoutez simplement $ VIRTUAL_ENV / bin à $ PATH. Même si vous exécutez python en tant que $ VIRTUAL_ENV / bin / python, il semble que vous puissiez exécuter Python dans l'environnement virtuel sans aucun problème.

activate


#Extrait du script d'activation
PATH="$VIRTUAL_ENV/bin:$PATH"
unset PYTHONHOME

Résumé

Le mécanisme de cale en pyenv est un peu intéressant. Ce que fait virtualenv n'est pas si compliqué. Si vous souhaitez utiliser la version installée dans pyenv, vous pouvez procéder comme suit.

$ virtualenv path-to-desired-env --python=$HOME/.pyenv/versions/2.7.8/

Recommended Posts

Mécanisme de pyenv et virtualenv
environnement de développement python -utilisation de pyenv et virtualenv-
Coexistence de pyenv et autojump
Une histoire d'essayer pyenv, virtualenv et virtualenvwrapper
Installez pyenv et pyenv-virtualenv
Résumé de l'utilisation de pyenv
Pyenv + virtualenv sur Mac
Introduction du wrapper Virtualenv
Le problème des menteurs et de l'honnêteté
Pré-traitement et post-traitement de pytest
Combinaison de récursif et de générateur
Combinaison de anyenv et direnv
Explication et mise en œuvre de SocialFoceModel
Notes sur pyenv et Atom
Différenciation du tri et généralisation du tri
Introduction de caffe en utilisant pyenv
Utilisation et intégration de "Shodan"
Le problème des menteurs et de l'honnêteté
python avec pyenv et venv
Catalina sur Mac et pyenv
Occurrence et résolution de tensorflow.python.framework.errors_impl.FailedPreconditionError
[Python] Anaconda, pyenv, virtualenv, .bash_profile
Comparaison d'Apex et de Lamvery
Installation source et installation de Python
Introduction et astuces de mlflow.
Jouez avec le mécanisme de mot de passe de GitHub Webhook et Python
[Objet obligatoire DI] Implémenter et comprendre le mécanisme de DI avec Go
Procédure d'installation + utilisation de "virtualenv" et "pythonz" dans l'environnement Mountain Lion
Construction d'environnement de python et opencv
Connaissance de base de Linux et des commandes de base
L'histoire de Python et l'histoire de NaN
Explication et mise en œuvre de PRML Chapitre 4
Élever la version de pyenv elle-même
Introduction et mise en œuvre de JoCoR-Loss (CVPR2020)
Avantages et exemples d'utilisation de Rabbit Mq
Explication et implémentation de l'algorithme ESIM
Risque de mélange! ndarray et matrice
Installer SciPy et matplotlib (Python)
Importance de l'apprentissage automatique et de l'apprentissage par mini-lots
Introduction et mise en œuvre de la fonction d'activation
Mémorandum de sauvegarde et modèle de chargement
J'ai étudié le mécanisme de connexion flask!
pyenv-changer la version python de virtualenv
Malentendus et interprétations des dépendances de Luigi
Explication et mise en œuvre du perceptron simple
Calcul de la classe auto-fabriquée et de la classe existante
Ceci et cela des propriétés python
Méthode de planification des expériences et optimisation des combinaisons
Playbook Ansible pour installer et configurer `pyenv`
Caractéristiques du lien symbolique et dur
Coexistence de Python2 et 3 avec CircleCI (1.0)
Résumé des index et des tranches Python
Agrégation et visualisation des nombres accumulés
Réputation des livres Python et des livres de référence
Créer un environnement avec pyenv et pyenv-virtualenv
Utilisez pydoc avec Virtualenv / pyenv / venv