J'étudiais la gestion des versions de python lors de la préparation de l'environnement python, mais j'étais assez confus par virtualenv et pyenv-virtualenv.
J'ai trouvé cet article à ce moment-là. C'était très facile à comprendre et à rafraîchir.
J'essaierai de le résumer moi-même.
pyenv-virtualenv et virtualenv sont différents et les deux combinaisons suivantes sont possibles.
Par exemple, lorsque vous souhaitez utiliser différents environnements python pour projectA, projectB et projectC, si vous utilisez pyenv-virtualenv, les trois environnements seront créés dans le répertoire HOME et vous y ferez référence à partir de chaque projet. Lors de l'utilisation de virtualenv, un environnement python est créé dans chaque projet. Je pense que c'est ce que cela signifie.
virtualenv peut être complété dans le répertoire du projet, mais il est difficile de devoir activer l'environnement à chaque fois. pyenv-virtualenv est facile car l'environnement est automatiquement appliqué lorsque vous entrez dans le répertoire du projet, mais il est un peu désagréable que l'environnement soit créé sous le répertoire HOME. Parce que vous ne voulez pas vraiment utiliser le même environnement à partir d'un autre projet.
J'ai donc décidé d'utiliser pyenv + virtualenv.
pyenv
Installez pyenv avec homebrew.
$ brew install pyenv
Ajoutez les paramètres suivants à .bash_profile
etc.
.bash_profile}
export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"
Essayez d'installer la dernière version de python.
Vous pouvez voir une liste des versions installables avec pyenv install -l
. Essayez d'installer les dernières versions des séries 2 et 3.
$ pyenv versions
* system (set by /Users/clutter/.pyenv/version)
$ pyenv install -l
$ pyenv install 2.7.12
$ pyenv install 3.5.2
$ pyenv versions
* system (set by /Users/clutter/.pyenv/version)
2.7.12
3.5.2
Vous avez installé avec succès «2.7.12» et «3.5.2».
Essayez de changer de version avec pyenv.
~$ pyenv version
system (set by /Users/clutter/.pyenv/version)
~$ python -V
Python 2.7.10
##Changement de version global
~$ pyenv global 3.5.2
~$ pyenv version
3.5.2 (set by /Users/clutter/.pyenv/version)
~$ python -V
Python 3.5.2
##Changements dans un répertoire spécifique
~$ mkdir pytest
~$ cd !$
pytest$ pyenv local 2.7.12
pytest$ pyenv version
2.7.12 (set by /Users/clutter/pytest/.python-version)
pytest$ python -V
Python 2.7.12
pytest$ cd ..
~$ pyenv version
3.5.2 (set by /Users/clutter/.pyenv/version)
~$ python -V
Python 3.5.2
Vous pouvez voir que les versions ont été permutées entre le répertoire personnel et le répertoire pytest.
La version locale semble être enregistrée dans la .python-version
créée dans ce répertoire.
pytest$ ls -a
. .. .python-version
pytest$ cat .python-version
2.7.12
virtualenv
Si vous passez à la version installée avec pyenv, vous pouvez utiliser pip
, alors installez-la.
$ pip install virtualenv
Créez un environnement virtuel et essayez d'installer Flask.
$ pip list
pip (8.1.1)
setuptools (20.10.1)
virtualenv (15.1.0)
#Créer un nouvel environnement virtuel venvtest
$ virtualenv venvtest
New python executable in /Users/clutter/venvtest/bin/python2.7
Also creating executable in /Users/clutter/venvtest/bin/python
Installing setuptools, pip, wheel...done.
$ ls
venvtest
$ cd venvtest
#Activer l'environnement virtuel
$ source bin/activate
#Installer des packages dans un environnement virtuel
(venvtest) $ pip install Flask
(venvtest) $ pip list
click (6.6)
Flask (0.11.1)
itsdangerous (0.24)
Jinja2 (2.8)
MarkupSafe (0.23)
pip (9.0.1)
setuptools (30.4.0)
Werkzeug (0.11.11)
wheel (0.29.0)
#Quittez l'environnement virtuel
(venvtest) $ deactivate
$ pip list
pip (8.1.1)
setuptools (20.10.1)
virtualenv (15.1.0)
Lorsque vous quittez l'environnement virtuel, vous pouvez voir que Flask n'est pas installé.
Si vous ajoutez --no-site-packages
lors de la création d'un environnement virtuel, il semble qu'il ignorera les packages installés globalement et créera l'environnement dans un bel état, il semble donc préférable de se souvenir de cette option. ..
Créer avec l'option --python
virtualenv venv --python=~/.pyenv/versions/3.5.2/bin/python3
Vous pouvez définir --python = python3.5.2
, mais on dit que vous ne savez pas quel python3 est quand anaconda est également installé
Cela peut en être la cause.
.bash_profile
n'est pas chargéRecommended Posts