pyenv
https://github.com/pyenv/pyenv
Pyenv ti consente di gestire più versioni di Python senza sudo per un singolo utente, proprio come Node.js NVM e Ruby RVM .
Installa Pyenv:
curl https://pyenv.run | bash
Quindi aggiungi al tuo .bashrc
:
export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Trova la versione di Python da installare:
pyenv install --list
Installa la versione di Python che desideri:
# 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
Elenco versioni disponibili di Python:
pyenv versions
Ora abbiamo:
* system (set by /home/cirsan01/.pyenv/version)
3.8.0
Seleziona una versione di Python diversa:
pyenv global 3.8.0
python --version
python3 --version
Entrambe le uscite:
Python 3.8.0
Ora possiamo procedere con l'installazione e l'uso dei pacchetti normalmente:
pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'
Possiamo confermare che tutto è installato localmente nel nostro ambiente pulito con:
python -c 'import cowsay; print(cowsay.__file__)'
which cowsay
Per utilizzo del progetto
Nella sezione precedente, abbiamo visto come utilizzare pyenv in una configurazione globale.
Tuttavia, ciò che di solito si desidera impostare una versione specifica di pacchetto e python in base al progetto. Così è come si fa.
Innanzitutto installa la versione di Python desiderata come prima.
Quindi, dall'interno della directory del progetto, imposta la versione di Python desiderata con:
pyenv local 3.8.0
che crea un file .python-version
contenente la stringa di versione.
E ora installiamo un pacchetto localmente solo per il nostro progetto: TODO: non c'è niente di bello a quanto pare: /programming/30407446/pyenv-choose-virtualenv-directory/59267972#59267972
Ora, quando qualcuno vuole usare il tuo progetto, farà:
pyenv local
che imposta la versione di Python su quella corretta.
Discussioni correlate:
Testato su Ubuntu 18.04, pyenv 1.2.15.