pyenv
Cette méthode n'utilise pas apt-get
mais c'est, je crois, la meilleure option disponible aujourd'hui, car il peut facilement compiler n'importe quelle version de Python à partir des sources pour vous, de sorte que vous n'avez pas à compter sur les PPAs.
https://github.com/pyenv/pyenv
Pyenv vous permet de gérer plusieurs versions de Python sans sudo pour un seul utilisateur, à l'instar de Node.js NVM y Ruby RVM .
Installez Pyenv :
curl https://pyenv.run | bash
Puis ajoutez à votre .bashrc
:
export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Trouver la version de Python à installer :
pyenv install --list
Installez la version de Python que vous voulez :
# 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 de 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 normale des paquets :
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 :
python -c 'import cowsay; print(cowsay.__file__)'
which cowsay
Nous voyons que which python
pointe vers :
~/.pyenv/shims/python
parce que ~/.pyenv/shims
est ajouté à l'avance à PATH
avec le rc scripts.
TODO comprendre davantage. La version globale est en quelque sorte déterminée par :
~/.pyenv/version
qui contient maintenant :
3.8.0
Utilisation par projet
Dans la section précédente, nous avons vu comment utiliser pyenv dans une configuration globale.
Cependant, ce que vous souhaitez généralement, c'est définir une version spécifique de Python et du paquetage pour chaque projet. Voici comment procéder.
Commencez par installer la version de Python que vous souhaitez comme précédemment.
Ensuite, à partir du répertoire de votre projet, définissez la version de Python souhaitée avec :
pyenv local 3.8.0
qui crée un fichier .python-version
contenant la chaîne de la version .
Et maintenant, installons un paquet localement juste pour notre projet : TODO : il semble qu'il n'y ait pas de bonne méthode : https://stackoverflow.com/questions/30407446/pyenv-choose-virtualenv-directory/59267972#59267972
Maintenant, quand quelqu'un voudra utiliser votre projet, il le fera :
pyenv local
qui définit la version de Python comme étant la bonne.
Fils connexes :
Testé sur Ubuntu 18.04, pyenv 1.2.15.