pyenv
https://github.com/pyenv/pyenv
Pyenv vous permet de gérer plusieurs versions Python sans sudo pour un seul utilisateur, un peu comme Node.js NVM et Ruby RVM .
Installez Pyenv:
curl https://pyenv.run | bash
Ajoutez ensuite à votre .bashrc
:
export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Trouvez la version Python à installer:
pyenv install --list
Installez la version python que vous souhaitez:
# Increase the chances that the build will have all dependencies.
# https://github.com/pyenv/pyenv/wiki/Common-build-problems
sudo apt build-dep python3
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
# Build and install a Python version from source.
pyenv install 3.8.0
Liste des versions Python disponibles:
pyenv versions
Nous avons maintenant:
* system (set by /home/cirsan01/.pyenv/version)
3.8.0
Sélectionnez une autre version de python:
pyenv global 3.8.0
python --version
python3 --version
Les deux sorties:
Python 3.8.0
Nous pouvons maintenant procéder à l'installation et à l'utilisation des packages normalement:
pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'
Nous pouvons confirmer que tout est installé localement dans notre environnement propre avec:
python -c 'import cowsay; print(cowsay.__file__)'
which cowsay
Utilisation par projet
Dans la section précédente, nous avons vu comment utiliser pyenv dans une configuration globale.
Cependant, ce que vous voulez généralement est de définir une version spécifique de python et de package par projet. Voici comment faire.
Installez d'abord la version Python souhaitée comme précédemment.
Ensuite, depuis l'intérieur de votre répertoire de projet, définissez la version python souhaitée avec:
pyenv local 3.8.0
qui crée un fichier .python-version
contenant la chaîne de version.
Et maintenant, installons un package localement juste pour notre projet: TODO: il n'y a pas de façon sympa qu'il semble: /programming/30407446/pyenv-choose-virtualenv-directory/59267972#59267972
Maintenant, quand quelqu'un veut utiliser votre projet, il fera:
pyenv local
qui définit la version Python sur la bonne.
Sujets associés:
Testé sur Ubuntu 18.04, pyenv 1.2.15.