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:
- Verwenden Sie den Paketmanager Ihres Systems, um "python-setuptools" und "python-virtualenv" zu installieren (nicht sicher, ob dies die tatsächlichen Paketnamen sind).
- Verwenden Sie
virtualenv
um eine Umgebung zu erstellen, in der Sie Ihre andere Python-Version verwenden werden - 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.