Ich möchte die neueste Python, die 3.6 zum Zeitpunkt dieses Beitrags ist zu installieren. Allerdings ist das Repository sagen, dass Python 3.4.2 die neueste Version ist.
Ich habe es versucht:
$ sudo apt-get update
$ sudo apt-get install python3
python3 is already the newest version.
$ python -V
Python 3.4.2
Um auf meiner Windows-Workstation auf Python 3.6 zu aktualisieren, habe ich einfach eine exe-Datei heruntergeladen, ein paar Mal auf "weiter" geklickt, und fertig ist es. Was ist die korrekte und offiziell akzeptierte Vorgehensweise, um Python 3.6 auf Debian Jessie zu installieren?
Sie können Python-3.6
unter Debian 8 wie folgt installieren:
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar xvf Python-3.6.9.tgz
cd Python-3.6.9
./configure --enable-optimizations --enable-shared
make -j8
sudo make altinstall
python3.6
Es wird empfohlen, make altinstall
gemäß der offiziellen Webseite zu verwenden.
Wenn Sie wollen, dass pip
einbezogen wird, müssen Sie --with-ensurepip=install
zu Ihrem configure-Aufruf hinzufügen. Für weitere Details siehe ./configure --help
.
Warnung: make install
kann die Python-Binärdatei überschreiben oder maskieren. Daher wird make altinstall
anstelle von make install
empfohlen, da es nur exec_prefix/bin/pythonversion
installiert.
Einige Pakete müssen installiert werden, um einige bekannte Probleme zu vermeiden, siehe: Gängige Build-Probleme(aktualisiert)
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
Alternative von libreadline-dev:
sudo apt install libedit-dev
Fedora/CentOS/RHEL(aws ec2):
sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
openssl-devel xz xz-devel libffi-devel
Alternative von openssl-devel:
sudo yum install compat-openssl10-devel --allowerasing
Update
Sie können die neueste python-x.y.z.tar.gz
von hier herunterladen.
Um eine Standard-Python-Version festzulegen und einfach zwischen ihnen zu wechseln, müssen Sie Ihre update-alternatives
mit den verschiedenen Python-Versionen aktualisieren.
Angenommen, Sie haben python3.7
auf Debian Stretch installiert, dann benutzen Sie den Befehl whereis python
, um die Binärdatei (*/bin/python
) zu finden. z.B:
/usr/local/bin/python3.7
/usr/bin/python2.7
/usr/bin/python3.5
Fügen Sie die Python-Versionen hinzu:
update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 50
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 40
update-alternatives --install /usr/bin/python python /usr/bin/python3.5 30
Die python3.7
mit der 50
Priorität ist jetzt Ihr Standardpython, die python -V
wird ausgeben:
Python 3.7.0b2
Um zwischen ihnen zu wechseln, verwenden Sie:
update-alternatives --config python
Beispielhafte Ausgabe:
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/local/bin/python3.7 50 auto mode
1 /usr/bin/python2.7 40 manual mode
2 /usr/bin/python3.5 30 manual mode
3 /usr/local/bin/python3.7 50 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Vielleicht möchten Sie einen Blick auf pyenv
werfen: https://github.com/yyuu/pyenv . Um aus dem pyenv
-Tutorial im Amaral Lab zu zitieren:
Mit pyenv, früher bekannt als Pythonbrew, können Sie die globale
Python-Version ändern, mehrere Python-Versionen installieren, Verzeichnis (projekt)-spezifische Python-Versionen einstellen, und ja, virtuelle Python-Umgebungen ("virtualenvs"). All dies geschieht auf *NIX-ähnlichen Maschinen (Linux und OS X), ohne von Python selbst abhängig zu sein, und es funktioniert auf der Benutzerebene - keine Notwendigkeit für sudo-Befehle.
Debian hat kein Python 3.6 in seinen Repositories. Hier's ein Schnappschuss des aktuellen Python3-Status:
wheezy (oldstable) (python): interactive high-level object-oriented language (default python3 version)
3.2.3-6: all
jessie (stable) (python): interactive high-level object-oriented language (default python3 version)
3.4.2-2: amd64 arm64 armel armhf i386 mips mipsel powerpc ppc64el s390x
stretch (testing) (python): interactive high-level object-oriented language (default python3 version)
3.5.1-4: amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el s390x
sid (unstable) (python): interactive high-level object-oriented language (default python3 version)
3.5.1-4: alpha amd64 arm64 armel armhf hppa hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 m68k mips mips64el mipsel powerpc powerpcspe ppc64 ppc64el s390x sh4 sparc64 x32
Sie können dies hier nachprüfen.
Sie können 3.6 entweder aus dem Quellcode installieren oder etwas wie Linuxbrew für eine Installation im Heimatverzeichnis verwenden.