Wie installiert man Python 3.6?

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  to keep the current choice[*], or type selection number: 
Kommentare (13)

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.

Kommentare (4)

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.

Kommentare (0)