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.
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.
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.
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.
Examinez la variable d'environnement PYENV_VERSION
et utilisez les informations de version, le cas échéant.
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.
Si le fichier .python-version
n'existe pas dans le même répertoire, recherchez dans le répertoire parent le fichier .python-version
.
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é.
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
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
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