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

Zwei Versionen von Python unter Linux. wie man 2.7 zum Standard macht

Fügen Sie /usr/local/bin hinzu zu Ihrem PATH Umgebungsvariable, früher in der Liste als /usr/bin .

Im Allgemeinen geschieht dies in der rc-Datei Ihrer Shell, z. für Bash würden Sie dies in .bashrc einfügen :

export PATH="/usr/local/bin:$PATH"

Dadurch sucht Ihre Shell zuerst nach python in /usr/local/bin , bevor es mit dem in /usr/bin geht .

(Das bedeutet natürlich, dass Sie auch /usr/local/bin/python haben müssen zeigen Sie auf python2.7 - falls noch nicht geschehen, müssen Sie es symbolisch verlinken.)


Geben Sie den Befehl

ein
which python

//output:
/usr/bin/python

cd /usr/bin
ls -l

Hier können Sie so etwas sehen

lrwxrwxrwx 1 root   root            9 Mar  7 17:04  python -> python2.7

Ihr Standard-Python2.7 ist mit dem Text „Python“ verknüpft

Entfernen Sie also die Softlink-Python

sudo rm -r python

Wiederholen Sie dann den obigen Befehl

ls -l

Sie können sehen, dass der Softlink entfernt wurde

-rwxr-xr-x 1 root   root      3670448 Nov 12 20:01  python2.7

Erstellen Sie dann einen neuen Softlink für python3.6

ln -s /usr/bin/python3.6 python

Versuchen Sie dann den Befehl python im Terminal

//output:
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux

Geben Sie help ein , copyright , credits oder license für weitere Informationen.


Wahrscheinlich möchten Sie Ihr Standard-Python eigentlich gar nicht ändern.

Ihre Distribution hat ein Standard-System-Python in /usr/bin installiert , und kann Skripte haben, die davon abhängen, dass dies vorhanden ist und von #! /usr/bin/env python ausgewählt wird . Das können Sie normalerweise kommen Sie mit der Ausführung von Python 2.6-Skripten in 2.7 davon, aber wollen Sie es riskieren?

Darüber hinaus mit /usr/bin herumzualbern kann die Fähigkeit Ihres Paketmanagers beeinträchtigen, Pakete zu verwalten. Und die Reihenfolge der Verzeichnisse in Ihrem PATH ändern wird neben Python noch viele andere Dinge beeinflussen. (Tatsächlich ist es üblicher, /usr/local/bin zu haben vor /usr/bin , und es kann das sein, was Sie tatsächlich wollen – aber wenn Sie es umgekehrt haben, gibt es vermutlich einen guten Grund dafür.)

Aber das brauchen Sie nicht um Ihr Standard-Python zu ändern, damit das System 2.7 ausführt, wenn Sie python eingeben .

Zuerst können Sie einen Shell-Alias ​​einrichten:

alias python=/usr/local/bin/python2.7

Geben Sie das an einer Eingabeaufforderung ein oder geben Sie es in Ihren ~/.bashrc ein wenn Sie möchten, dass die Änderung dauerhaft ist, und jetzt, wenn Sie geben Sie python ein Es führt die von Ihnen gewählte Version 2.7 aus, aber wenn ein Programm auf Ihrem System versucht, ein Skript mit /usr/bin/env python auszuführen es läuft mit dem Standard 2.6.

Alternativ können Sie einfach eine virtuelle Umgebung aus Ihrer 2.7 erstellen (oder separate Venvs für verschiedene Projekte) und Ihre Arbeit innerhalb der Venv erledigen.


Linux
  1. So installieren Sie Python unter Linux

  2. So verwalten Sie mehrere Python-Versionen mit Pyenv unter Linux

  3. So finden Sie die Standard-Gateway-IP in Linux

  4. So installieren Sie Python 3.10 auf Rocky Linux 8

  5. So führen Sie eine Python-Datei unter Linux aus

Wie man den Befehl fuser unter Linux verwendet und optimal nutzt

Wie man eine Datei unter Linux ausführbar macht

So ändern Sie die Standardbenutzer-Shell im Linux-Betriebssystem

So ändern Sie die Standard-Shell im Linux-System

Wie sehe ich das Python-Dokument unter Linux?

Wie mache ich mein Python-Modul unter Linux systemweit verfügbar?