GNU/Linux >> LINUX-Kenntnisse >  >> Linux

apt-get install für verschiedene Python-Versionen

Ubuntu 10.04 hat kein python2.7-Paket. 2.7 musst du selber bauen. Ich habe einen Artikel darüber gelesen, dass Ubuntu ein Python2.7-Paket veröffentlicht hat, als 12.04 herauskam, aber ich bin mir nicht sicher, wo sich das Repository befindet.

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

oder:

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

Auf diese Frage gibt es online viele Antworten.


pyenv

https://github.com/pyenv/pyenv

Mit Pyenv können Sie mehrere Python-Versionen ohne sudo für einen einzelnen Benutzer verwalten, ähnlich wie Node.js NVM und Ruby RVM.

Pyenv installieren:

curl https://pyenv.run | bash

Fügen Sie dann zu Ihrem .bashrc hinzu :

export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Suchen Sie die zu installierende Python-Version:

pyenv install --list

Installieren Sie die gewünschte Python-Version:

# 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

Verfügbare Python-Versionen auflisten:

pyenv versions

Wir haben jetzt:

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

Wählen Sie eine andere Python-Version aus:

pyenv global 3.8.0
python --version
python3 --version

Beide geben aus:

Python 3.8.0

Wir können jetzt mit der normalen Installation und Verwendung von Paketen fortfahren:

pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'

Wir können bestätigen, dass alles lokal in unserer sauberen Umgebung installiert ist mit:

python -c 'import cowsay; print(cowsay.__file__)'

ergibt:

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

und:

which cowsay

ergibt:

/home/ciro/.pyenv/shims/cowsay

und:

which python

ergibt:

/home/ciro/.pyenv/shims/python

Nutzung pro Projekt

Im vorherigen Abschnitt haben wir gesehen, wie man pyenv in einem globalen Setup verwendet.

In der Regel möchten Sie jedoch eine bestimmte Python- und Paketversion pro Projekt festlegen. So geht's.

Installieren Sie zunächst wie bisher Ihre gewünschte Python-Version.

Stellen Sie dann in Ihrem Projektverzeichnis die gewünschte Python-Version mit ein:

pyenv local 3.8.0

wodurch eine Datei .python-version erstellt wird enthält die Versionszeichenfolge.

Und jetzt installieren wir ein Paket lokal nur für unser Projekt:TODO:Es scheint keinen netten Weg zu geben:Pyenv wähle das virtualenv-Verzeichnis

Wenn nun jemand Ihr Projekt verwenden möchte, wird er Folgendes tun:

pyenv local

wodurch die Python-Version auf die richtige gesetzt wird.

Verwandte Threads:

  • 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 für verschiedene Python-Versionen

Getestet auf Ubuntu 18.04, pyenv 1.2.15.


Python hat seine eigenen Paketverwaltungsfunktionen, parallel zu denen der Linux-Distributionen (einschließlich Ubuntu). Das Repository ist der Pypi - Python-Paketindex, und Pakete werden mit pip installiert oder das easy_install-Skript, das Teil des Setuptools-Pakets von Python ist.

Als Faustregel gilt, dass Sie nicht sowohl die über pip/setuptools installierten Pakete als auch die für Ihre Distribution verfügbaren Pakete (über apt-get, yum, urpmi usw.) verwenden sollten, da dies zu Konflikten führen könnte.

Eine der weniger fehleranfälligen Möglichkeiten, damit umzugehen, besteht darin, separate Python-Installationen in Ihrem System zu haben - lassen Sie das mit dem System gelieferte Python für Systemskripte und dergleichen - verwenden Sie auf diesem Python Pakete, die von Ihrem Paketmanager installiert wurden nur. Und installieren Sie andere Versionen von Python (oder sogar die gleichen), die mit "virtualenv"s ausgeführt werden - bei diesen anderen Installationen installieren Sie Dinge nur mit pip/setuptools.

(Und selbst wenn man sich dafür entscheidet, mutig zu leben und Virtualenvs nicht zu verwenden, installiert man eine andere Python-Version mit demselben Präfix (/usr , und sogar /usr/local ), als Python Ihres Systems eine Quelle für verwirrende Fehler und Konflikte ist).

Beachten Sie, dass die Debian- und Ubuntu-Systeme eine Möglichkeit entwickelt haben, parallel offizielle Pythons in /usr auszuführen und apt-get zu veranlassen, Python-Pakete auf beiden Python-Versionen gleichzeitig zu installieren. Dies funktioniert meistens, aber sie bringen Pythons Standardverzeichnishierarchie durcheinander, und einige Anwendungen verwenden Python nicht auf diese Weise. (Es ist auch ein Durcheinander, die Moduldateien selbst in einem Debian oder Ubuntu zu finden). Daher gilt die obige Methode als Empfehlung, auch wenn auf Ihrem System mehr als eine Version von Python auf apt-get verfügbar ist.

Kurz gesagt, sobald Sie Ihre gewünschte Version von Python kompiliert haben, tun Sie dies:

  1. Verwenden Sie den Paketmanager Ihres Systems, um "python-setuptools" und "python-virtualenv" zu installieren (nicht sicher, ob dies die tatsächlichen Paketnamen sind).
  2. Verwenden Sie virtualenv um eine Umgebung zu erstellen, in der Sie Ihre andere Python-Version verwenden werden
  3. Aktivieren Sie Ihre virtuelle Umgebung und installieren Sie Python-Pakete mit pip drauf.

Virtualenv verfügt über einen "--help"-Schalter, um Ihnen zu helfen, aber Sie tun es im Grunde:

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

Und da sind Sie - alle Dinge, die Python verwenden, "sehen" den Interpreter in der virtuellen Umgebung, aufgrund der gesetzten Umgebungsvariablen.


Linux
  1. Erstellen Sie mit Conda eine virtuelle Umgebung für verschiedene Python-Versionen

  2. Führen Sie mehrere Versionen von PHP für verschiedene Domains in NGNIX aus

  3. So installieren Sie Pip unter Ubuntu – Paketmanager für Python

  4. So installieren Sie Python unter Linux Mint 20

  5. Installieren Sie python-novaclient unter Windows

So installieren Sie Python 3 unter Windows 10

Installieren Sie Python 3 auf Redhat 8

So installieren Sie Setuptools für Python unter Linux

Installieren Sie PIP für Python 3 in CentOS 8

So installieren Sie verschiedene PHP-Versionen (5.6, 7.x und 8.0) in Ubuntu

So installieren Sie Python PIP unter Ubuntu 18.04