GNU/Linux >> Linux Esercitazione >  >> Linux

apt-get install per diverse versioni di Python

ubuntu 10.04 non ha un pacchetto python2.7. Devi costruire 2.7 da solo. Ho letto un articolo su Ubuntu che rilascia un pacchetto python2.7 quando è uscito 12.04, ma non sono sicuro di quale sia la posizione del repository.

http://eli.thegreenplace.net/2011/10/10/installing-python-2-7-on-ubuntu/

oppure:

sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.7

https://askubuntu.com/questions/101591/install-python-2-7-2-on-ubuntu-10-04-64-bit

questa domanda ha molte risposte online.


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

Elenca le versioni di Python disponibili:

pyenv versions

Ora abbiamo:

* system (set by /home/cirsan01/.pyenv/version)
  3.8.0

Seleziona una versione diversa di Python:

pyenv global 3.8.0
python --version
python3 --version

Entrambi producono:

Python 3.8.0

Ora possiamo procedere con l'installazione e l'utilizzo 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__)'

dà:

/home/ciro/.pyenv/versions/3.8.0/lib/python3.8/site-packages/cowsay/__init__.py

e:

which cowsay

dà:

/home/ciro/.pyenv/shims/cowsay

e:

which python

dà:

/home/ciro/.pyenv/shims/python

Utilizzo per 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 Python e pacchetto in base al progetto. Ecco come farlo.

Per prima cosa installa la versione di Python desiderata come prima.

Quindi, dall'interno della directory del tuo progetto, imposta la versione python desiderata con:

pyenv local 3.8.0

che crea un file .python-version contenente la stringa della versione.

E ora installiamo un pacchetto in locale solo per il nostro progetto:TODO:non sembra un modo carino:Pyenv scegli la directory virtualenv

Ora, quando qualcuno vuole utilizzare il tuo progetto, lo farà:

pyenv local

che imposta la versione di Python su quella corretta.

Discussioni correlate:

  • https://askubuntu.com/questions/682869/how-do-i-install-a-different-python-version-using-apt-get
  • https://unix.stackexchange.com/questions/9711/what-is-the-proper-way-to-manage-multiple-python-versions
  • apt-get install per diverse versioni di Python

Testato su Ubuntu 18.04, pyenv 1.2.15.


Python ha le proprie funzionalità di gestione dei pacchetti, parallele a quelle impostate dalle distribuzioni Linux (incluso Ubuntu). Il repository è Pypi - Python Package Index, e i pacchetti sono installati con pip o lo script easy_install, che fa parte del pacchetto setuptools di Python.

Come regola generale, non dovresti usare sia i pacchetti installati tramite pip/setuptools, sia i pacchetti disponibili per la tua distribuzione (tramite apt-get, yum, urpmi, ecc...) in quanto potrebbero entrare in conflitto.

Quindi, uno dei modi meno soggetti a errori per gestirlo è avere installazioni Python separate nel tuo sistema - lascia il python fornito con il sistema per gli script di sistema e simili - su questo python, usa i pacchetti installati dal tuo gestore di pacchetti solo. E installa altre versioni di Python (o anche la stessa), da eseguire con "virtualenv" - su queste altre installazioni installi cose solo con pip/setuptools.

(E anche se si sceglie di vivere con coraggio e non usare virtualenvs, installando un'altra versione di Python sullo stesso prefisso (/usr e anche /usr/local ) rispetto al Python del tuo sistema è una fonte di errori e conflitti confusi).

Si noti che i sistemi Debian - e Ubuntu - hanno escogitato un modo per eseguire Python ufficiali paralleli in /usr e per avere apt-get per installare i pacchetti Python su entrambe le versioni di Python contemporaneamente. Questo per lo più funziona, ma fanno confusione con la gerarchia di directory predefinita di Python e alcune applicazioni non riescono a utilizzare Python in questo modo. (È anche un casino trovare i file del modulo stessi in Debian o Ubuntu). Quindi il metodo sopra si applica come raccomandazione anche se il tuo sistema ha più di una versione di Python disponibile su apt-get.

In breve, una volta che hai compilato la versione desiderata di Python, fai questo:

  1. usa il gestore di pacchetti del tuo sistema per installare "python-setuptools" e "python-virtualenv" (non sono sicuro che questi siano i veri nomi dei pacchetti).
  2. Usa virtualenv per creare un ambiente dal quale utilizzerai la tua diversa versione di Python
  3. Attiva il tuo virtualenv e installa i pacchetti Python usando pip su di esso.

Virtualenv dispone di un interruttore "--help" per aiutarti, ma in pratica lo fai:

$ virtualenv -p <path-to-python-interpreter>  <environment-dir>
$ source <environment-dir>/bin/activate

Ed ecco fatto:tutte le cose che usano Python "vedranno" l'interprete nel virtualenv, a causa delle variabili di ambiente impostate.


Linux
  1. Crea un ambiente virtuale per diverse versioni di Python usando Conda

  2. Esegui più versioni di PHP per diversi domini in NGNIX

  3. Come installare e cambiare versioni di Python su Ubuntu 20.04

  4. Come installare Python 3.10 su Rocky Linux 8

  5. Installa python-novaclient su Windows

Come installare Python 3 su Windows 10

Installa Python 3 su Redhat 8

Come installare Setuptools per Python su Linux

Installa PIP per Python 3 in CentOS 8

Come installare diverse versioni di PHP (5.6, 7.x e 8.0) in Ubuntu

Come installare Python PIP su Ubuntu 18.04