Wie ändere ich meinen PYTHONPATH, um 3.2 anstelle von 2.7.2 zu meinem Standard-Python zu machen?

16

Ich habe Python3.2 befindet sich in /usr/lib/python3.2. Ich bin mir nicht sicher, ob dies bedeutet, dass es installiert ist, aber ich gehe davon aus, dass dies vorerst der Fall ist.

Einige Fakten zu meinem System:

$ which python
/usr/local/bin/python

Wenn ich pythonein Terminal eintippe, bekomme ich folgendes

$ python
Python 2.7.2 (default, Dec 19 2011, 11:12:13) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Dann finde ich den Weg, den ich tue

>>> sys.info
>>> sys.path
['', '/usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg', '/usr/local/lib/python2.7/site-packages/PIL-1.1.7-py2.7-linux-x86_64.egg', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages']

Wenn ich das alles weiß, wie ändere ich dann mein Standardsystem Python von 2.7.2 auf 3.2?

max
quelle

Antworten:

28

Es ist nicht gut, die Standard-Python zu ändern. Viele Systemprogramme hängen von python2 und nicht von python3 ab. Wenn Sie python3 verwenden möchten, geben Sie einfach den Befehl python3 ein .

Lebensfeuer
quelle
4
Unterstützungsbibliotheken und -tools (wie pyenv, fabric) erwarten /usr/bin/env python, dass sie Ihren Wünschen entsprechen . Manuelles Tippen python3ist also nicht die Lösung.
Eric Mill
9

Der PYTHONPATH hat nicht viel damit zu tun. Es teilt dem Python-Interpreter lediglich mit, welcher Interpreter ausgeführt wird, wo zusätzliche Module zu finden sind, die Sie laden möchten.

In beiden Fällen ist es jedoch gefährlich, die Standardversion Ihres Systems zu ändern, wie andere Kommentatoren festgestellt haben. Sie laufen Gefahr, vorhandene Pakete zu beschädigen, die für Python2 erstellt wurden, und verwenden / usr / bin / env python, um ihre Interpreter zu finden.

In der Tat ist das der falsche Weg, um es auszudrücken. Das Ändern der Standardversion von Python wird Ihr gesamtes Ubuntu-System beschädigen und dazu führen, dass viele Programme einfach nicht mehr funktionieren. Es ist auch völlig unnötig.

Aber seit du gefragt hast, machst du Folgendes:

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.2mu /usr/bin/python

Viel Spaß beim Absturz!

Ken Kinder
quelle
7

Ich fügte dies in meinem .bashrc, es funktioniert soweit gut:

alias python='python3'
Vinod Garag
quelle
1
Das funktioniert, solange Sie Python nicht über ein Skript aufrufen, das keinen Zugriff auf Ihre Aliase hat.
HelloGoodbye
4

Dementsprechend können Sie Ihre Umgebungsvariable einrichten oder einfach einen neuen Importpfadordner hinzufügen. Ich empfehle jedoch, virtualenvs für Python-Projekte zu verwenden, wenn Sie etwas Flexibilität wünschen.

Tural Gurbanov
quelle
2

Hier ist der sicherste Weg, dies zu tun - mitupdate-alternatives

Vadim Rutkovsky
quelle
1

Wenn es tatsächlich installiert ist, geben Sie python3.2 anstelle von nur python ein und es wird dieses anstelle des Standards laden. Ich habe gerade Python 3.2 installiert, um es zu testen =)

Ist dies nicht der Fall, öffnen Sie das Terminal und geben Sie sudo apt-get install python3.2 ein, um es abzurufen

BretD
quelle