Introduzione a Pyenv
Pyenv consente di gestire più versioni di Python nello stesso ambiente.
Non bisogna confonderlo con venv o virtualenv che servono, invece, a gestire degli ambienti separati della stessa versione di python.
Situazione iniziale§
Abbiamo installato Python. Sarà da qualche parte, no? Python di sistema si trova così:
$ which python
> /usr/bin/python
Quale versione?
$ python -V
> Python 2.7.12
Come si installa Pyenv?§
Dipendenze su Ubuntu/Debian:
$ 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
Dipendenze su Alpine:
apk add libffi-dev ncurses-dev openssl-dev readline-dev \
tk-dev xz-dev zlib-dev
Installare pyenv con uno script di bash:
$ curl https://pyenv.run | bash
Probabilmente un warning ci avviserà della necessità di aggiungere alcune righe a `.bashrc`. Aggiungere le seguenti:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Riavviare la shell.
Visualizzare le versioni disponibili§
$ pyenv install --list
Restituisce la lista di versione installabili. Sono molte, ma è segno che è andato tutto bene.
Installare una versione di Python§
$ pyenv install 3.7.7
# Downloading Python-3.7.7.tar.xz...
# -> https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tar.xz
# Installing Python-3.7.7...
# Installed Python-3.7.7 to /home/usr/.pyenv/versions/3.7.7
È consigliabile spostarsi nella root del progetto che ci interessa e stabilire quale versione usare localmente:
$ pyenv local 3.7.7
Questo genera un file .python-version
che tiene in memoria la versione di python che pyenv andrà ad utilizzare quando noi lanciamo comandi da quella posizione.
Infatti:
$ cat .python-version
# > 3.7.7
Ora puoi usare Python come al solito e pip sarà associato automaticamente alla versione corretta.
Questo post ti è stato utile?
Tieni a mente che questo sito è privo di tracker, analytics e pubblicità, quindi tutela la tua privacy ma non guadagna dalle visite (inoltre, è progettato per avere un impatto ambientale minimo).
Se ti piace questo blog, sostieni le mie riserve di caffeina