Ich habe zwei Versionen von Python in meiner Linuxbox:
$python
Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ /usr/local/bin/python2.7
Python 2.7.3 (default, Oct 8 2013, 15:53:09)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ which python
/usr/bin/python
$ ls -al /usr/bin/python
-rwxr-xr-x. 2 root root 4864 Jul 10 22:49 /usr/bin/python
Wie kann ich 2.7 als Standardversion festlegen, wenn ich python
eingebe, wird es in 2.7 angezeigt?
Wahrscheinlich möchten Sie Ihren Standard-Python wahrscheinlich nicht ändern.
Ihre Distribution hat ein Standardsystem Python in /usr/bin
installiert. Möglicherweise sind Skripten vorhanden, die davon abhängig sind, dass diese vorhanden sind, und von #! /usr/bin/env python
ausgewählt werden. Sie können normalerweise mit dem Ausführen von Python 2.6-Skripten in 2.7 auskommen, aber möchten Sie es riskieren?
Darüber hinaus kann das Affen mit /usr/bin
die Fähigkeit des Paket-Managers zum Verwalten von Paketen beeinträchtigen. Das Ändern der Reihenfolge der Verzeichnisse in Ihrer PATH
wirkt sich neben Python auf viele andere Dinge aus. (Tatsächlich ist es üblicher, /usr/local/bin
vor /usr/bin
zu haben, und es ist vielleicht das, was Sie eigentlich wollen - aber wenn Sie es andersherum haben, gibt es vermutlich einen guten Grund dafür.
Sie brauchen jedoch nicht need, um Ihren Standard-Python zu ändern, damit das System 2.7 ausführt, wenn Sie python
eingeben.
Zunächst können Sie einen Shell-Alias einrichten:
alias python=/usr/local/bin/python2.7
Geben Sie dies bei einer Eingabeaufforderung ein oder geben Sie es in Ihren ~/.bashrc
ein, wenn die Änderung dauerhaft sein soll. Wenn Sie type python
ausgeführt wird, wird der von Ihnen gewählte 2.7 ausgeführt Skript mit /usr/bin/env python
läuft den Standard 2.6.
Alternativ können Sie einfach eine virtuelle Umgebung aus 2.7 (oder separate Projekte für verschiedene Projekte) erstellen und Ihre Arbeit innerhalb des Bereichs erledigen.
Fügen Sie /usr/local/bin
zu Ihrer PATH
-Umgebungsvariablen hinzu, die sich früher in der Liste als /usr/bin
befindet.
Im Allgemeinen geschieht dies in der RC-Datei Ihrer Shell, z. für Bash würden Sie dies in .bashrc
eingeben:
export PATH="/usr/local/bin:$PATH"
Dies führt dazu, dass Ihre Shell zuerst in /usr/local/bin
nach einer python
sucht, bevor sie mit der in /usr/bin
übereinstimmt.
(Dies bedeutet natürlich, dass Sie auch /usr/local/bin/python
auf python2.7
verweisen müssen. Falls dies nicht bereits der Fall ist, müssen Sie einen Symlink erstellen.)
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-Python 2.7 ist mit dem Text "Python" verknüpft.
Entfernen Sie also den 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
Dann erstelle 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
, copyright
, credits
oder license
ein, um weitere Informationen zu erhalten.
Alle Betriebssysteme werden mit einer Standardversion von Python geliefert und befinden sich in/usr/bin. Alle mit dem Betriebssystem gelieferten Skripts (z. B. yum) weisen auf diese Version von Python in /usr/bin. Wenn Sie eine neue Version von Python installieren möchten, möchten Sie nicht die vorhandenen Skripts brechen, die möglicherweise nicht funktionieren neue Version von Python.
Die richtige Vorgehensweise ist, den Python als alternative Version zu installieren.
e.g.
wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
tar xf Python-2.7.3.tar.bz2
cd Python-2.7.3
./configure --prefix=/usr/local/
make && make altinstall
Jetzt funktionieren die vorhandenen Skripte wie yum weiterhin mit /usr/bin/python.und Ihre Standard-Python-Version wäre die in /usr/local/bin.i.e installierte. Wenn Sie Python eingeben, erhalten Sie 2.7.3
Das passiert weil. Die Variable $ PATH enthält/usr/local/bin vor usr/bin.
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
Wenn Python2.7 immer noch nicht als Standard-Python-Version wirksam wird, müssen Sie dies tun
export PATH="/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
Überprüfen Sie die aktuelle Version von Python mit:
$ python --version
dann überprüfen Sie, ob Python ein symbolischer Link zu welcher Datei ist.
$ ll /usr/bin/python
Ausgang Ex:
lrwxrwxrwx 1 root root 9 Jun 16 2014 /usr/bin/python -> python2.7*
Überprüfen Sie andere verfügbare Versionen von Python:
$ ls /usr/bin/python*
Ausgang Ex:
/usr/bin/python /usr/bin/python2.7-config /usr/bin/python3.4 /usr/bin/python3.4m-config /usr/bin/python3.6m /usr/bin/python3m
/usr/bin/python2 /usr/bin/python2-config /usr/bin/python3.4-config /usr/bin/python3.6 /usr/bin/python3.6m-config /usr/bin/python3m-config
/usr/bin/python2.7 /usr/bin/python3 /usr/bin/python3.4m /usr/bin/python3.6-config /usr/bin/python3-config /usr/bin/python-config
Wenn Sie die aktuelle Version von Python auf 3.6 ändern möchten, bearbeiten Sie die Datei ~/.bashrc:
vim ~/.bashrc
füge die folgende Zeile am Ende der Datei hinzu und speichere:
alias python=/usr/local/bin/python3.6
So installieren Sie pip für Python 3.6
$ Sudo apt-get install python3.6 python3.6-dev
$ Sudo curl https://bootstrap.pypa.io/ez_setup.py -o - | Sudo python3.6
$ Sudo easy_install pip
Überprüfen Sie bei Erfolg die aktuelle Version von pip:
$ pip3 -V
Ausgang Ex:
pip 1.5.4 from /usr/lib/python3/dist-packages (python 3.6)