Depuis que j'ai décidé de créer une application avec python, j'ai pensé que la série python 2.x, qui est incluse dans le système d'exploitation par défaut, conviendrait, mais Lequel de Python 2 ou Python 3 dois-je utiliser pour le développement? dit que Python3.x est déjà stable, vous pouvez donc utiliser Python3.x à l'échelle du système avec pyenv. J'ai essayé de créer un environnement.
Au début, je pensais que ce serait correct de gérer uniquement pyenv, mais l'installation de chaque python prend beaucoup de temps et il semble qu'il n'est pas possible de supprimer et de reconstruire facilement l'environnement, j'ai donc également introduit virtualenv.
Installation des packages requis lors de la compilation de python.
CentOS
$ sudo yum install gcc bzip2 bzip2-devel openssl openssl-devel readline readline-devel
Ubuntu
$ sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
Obtenez-le de github.
$ cd /usr/local/
$ sudo git clone git://github.com/yyuu/pyenv.git ./pyenv
$ sudo mkdir -p ./pyenv/versions ./pyenv/shims
Je souhaite préparer un environnement distinct pour chaque version avec virtualenv, alors installez le plug-in pyenv-virtualenv.
$ cd /usr/local/pyenv/plugins/
$ sudo git clone git://github.com/yyuu/pyenv-virtualenv.git
Créez / etc / profile.d / pyenv.sh
.
$ echo 'export PYENV_ROOT="/usr/local/pyenv"' | sudo tee -a /etc/profile.d/pyenv.sh
$ echo 'export PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}"' | sudo tee -a /etc/profile.d/pyenv.sh
$ source /etc/profile.d/pyenv.sh #Refléter les paramètres
$ pyenv --version
pyenv 20141211-6-g995da2d
$
Je veux hériter de PATH et PYENV_ROOT au moment de sudo, donc éditez comme suit avec visudo de la même manière que Comment hériter de PATH à sudo.
#Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Defaults env_keep += "PATH"
Defaults env_keep += "PYENV_ROOT"
Pour autant que je puisse voir l'aide, il semble que les commandes qui peuvent être utilisées avec rbenv sont les mêmes.
$ pyenv --help
pyenv 20141211-6-g995da2d
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
commands List all available pyenv commands
local Set or show the local application-specific Python version
global Set or show the global Python version
shell Set or show the shell-specific Python version
install Install a Python version using python-build
uninstall Uninstall a specific Python version
rehash Rehash pyenv shims (run this after installing executables)
version Show the current Python version and its origin
versions List all Python versions available to pyenv
which Display the full path to an executable
whence List all Python versions that contain the given executable
See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/yyuu/pyenv#readme
$
Vérifiez la version qui peut être installée.
$ pyenv install --list
Installation de la dernière version 3.4.2 à compter du 28 décembre 2014.
$ sudo pyenv install -v 3.4.2
$ pyenv versions
* system (set by /usr/local/pyenv/version)
3.4.2
$
Changement de la version python par défaut pour chaque utilisateur en 3.4.2.
$ sudo pyenv global 3.4.2
$ pyenv versions
system
* 3.4.2 (set by /usr/local/pyenv/version)
$ python --version
Python 3.4.2
$
Vous pouvez créer un environnement à l'aide de la version python existante avec la commande suivante. Les packages installés avec pip, etc. varient en fonction de l'environnement, vous pouvez donc facilement installer des packages.
$ sudo pyenv virtualenv 3.4.2 dev01-3.4.2
$ pyenv versions
system
* 3.4.2 (set by /usr/local/pyenv/version)
dev01-3.4.2
$ sudo pyenv local dev01-3.4.2 #Environnement actuel dev01-3.4.Changer en 2
$ pyenv versions
system
3.4.2
* dev01-3.4.2 (set by /usr/local/pyenv/plugins/.python-version)
$
Essayez d'installer gunicorn avec pip.
$ sudo pip install gunicorn
$ pip list
gunicorn (19.1.1)
pip (1.5.6)
setuptools (2.1)
$ sudo pyenv local 3.4.2
$ pip list # 3.4.2 gunicorn n'est pas installé dans l'environnement.
pip (1.5.6)
setuptools (2.1)
$
Vous pouvez supprimer dev01-3.4.2 avec la commande suivante.
$ sudo pyenv uninstall dev01-3.4.2
pyenv: remove /usr/local/pyenv/versions/dev01-3.4.2? y
$ pyenv versions
system
* 3.4.2 (set by /usr/local/pyenv/plugins/.python-version)
$
Si vous utilisez pyenv, vous pouvez facilement installer la série python3.x sans vous soucier de l'environnement python au début du système, et il semble que vous puissiez facilement créer une vérification des opérations des séries python2.x et python3.x sur un seul système d'exploitation.
Il existe également un wrapper pour rbenv et pyenv appelé anyenv, qui semble être plus pratique si vous utilisez des outils d'environnement dans plusieurs langues. Préparez l'environnement de développement avec anyenv
C'est tout.
Recommended Posts