Wie wechsle ich zurück zu python2, nachdem Anaconda python3 als Standard festgelegt hat?

18

Vor kurzem habe ich Anaconda3-2.5.0-Linux-x86_64.sh auf meinem 15.04 installiert und bin dabei gelandet!

:~$ python --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

:~$ python2 --version
Python 2.7.9

:~$ python3 --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

In den letzten Augenblicken der Installation habe ich etwas yesin Eile eingegeben , und ich nehme an, dass es etwas damit zu tun hat. (Ok, meine Schuld, ich hätte das sorgfältig behandeln sollen, aber ich brauche jetzt Hilfe, keine Kritik).

Bildschirmfoto

AFAIK dies wird definitiv andere Programme brechen. Was mache ich jetzt?


Was ich denke, könnte funktionieren.

Kann dies unter Verwendung von Aliasen erfolgen?

alias python=python2

Aber ich bin mir nicht sicher.

unheimlich
quelle
Ja. Verwenden Siealias python=python2
Mostafa Ahangarha
AFAIK dies wird definitiv andere Programme brechen. Was bringt dich dazu, so zu denken? Wenn Anaconda Python 3 als Standard festlegt, hat dies wahrscheinlich einen Grund.
fkraiem
Ich habe bereits eines meiner Projekte ruiniert, das für 2.x geschrieben wurde, und das Konvertieren von Standard in 3.x wird nicht empfohlen, zumal viele Pakete auf 2.x funktionieren!
Unheimliche
In diesem Fall sind Sie sehr froh, dass Sie sich für einen professionellen Ansatz entschieden und einen Klon Ihres vorinstallierten Boot-Laufwerks erstellt haben, um zu verhindern, dass dies zu einer großen Zeitverschwendung wird. Bitte sehen Sie meine Antwort unten. Ich denke, Ihre Installationsmethode hat den Fehler verursacht. Wenn mir das passiert wäre, würde ich es wieder versuchen. Die Gesamtzeit wäre weniger als ein Tag, um herauszufinden, ob es rentabel ist. In meinem Fall bin ich, wie Sie sehen, am Ende der Überprüfungen und kann nun prüfen, ob sich die Mühe überhaupt gelohnt hat. Es hat ein paar Tage gedauert, um sicherzustellen, dass kein Problem aufgetreten ist und die Forschungsarbeiten auf dem richtigen Weg sind.
SDsolar
Stellen Sie beim Festlegen der Python-Version sicher, dass Sie genau wissen, welchen Ripple-Effekt dies auf Ihrem gesamten System haben kann. Wenn Sie nicht nur spielen, ist ein vollständiger Überprüfungsprozess erforderlich, wenn Sie die Ziele der Standard- which pythonShebang-Ergebnisse ändern . Es dauert nur ein bisschen, um zu verhindern, dass Sie später feststellen, dass Sie sich selbst in die Ecke gedrängt haben, einige Ihrer Dienstprogramme neu schreiben zu müssen. Das Beste ist, die Standardeinstellungen beizubehalten, es sei denn, Sie haben viel Zeit.
SDsolar

Antworten:

18

Ich habe die Installation in einer VM durchlaufen und Folgendes ist passiert.

  1. Das Installationsprogramm fragt nach einem Installationsort. Standard ist /home/myuser/anaconda3.
  2. Am Ende werden Sie gefragt

    Python 3.5.1 :: Continuum Analytics, Inc.
    creating default environment...
    installation finished.
    Do you wish the installer to prepend the Anaconda3 install location
    to PATH in your /home/myuser/.bashrc ? [yes|no]
    [no] >>> yes
    
    Prepending PATH=/home/myuser/anaconda3/bin to PATH in /home/myuser/.bashrc
    A backup will be made to: /home/myuser/.bashrc-anaconda3.bak

Um das alte Verhalten wiederherzustellen, wechseln Sie in Ihr Home-Verzeichnis und führen Sie die folgenden Schritte aus

mv .bashrc-anaconda3.bak .bashrc

Starten Sie dann eine neue Shell.

Wie Sie vorschlagen, könnten Sie alias python=python2, aber ich finde das ein bisschen komisch. Ich würde

  1. Stellen Sie das Original wieder her .bashrc
  2. Erstellen (falls nicht vorhanden) ~/bin
  3. Verknüpfung ln -s ~/anaconda3/bin/python3 ~/bin/python3
  4. [Voranstellen $HOME/binauf $PATH] (Sollte standardmäßig bereits eingestellt sein ~/.profile)
  5. Erneut anmelden.

Auf diese Weise wird der Anruf python3von Anaconda aus gestartet.


Ein wichtiger Punkt ist, dass das Original /usr/bin/pythonimmer noch da ist und immer noch darauf verweist python2.7. Die Auswirkungen python->python3auf Ihren Pfad hängen davon ab, wie ein bestimmtes Skript aufgerufen wird.

Wenn der shebang #!/usr/bin/pythonverwendet wird, wie es wahrscheinlich in allen mit Ubuntu gelieferten ausführbaren Dateien der Fall ist, ändert sich nichts. Andererseits wird zur besseren Portabilität #!/usr/bin/env pythonmanchmal verwendet, was nun dazu führen wird python3.5, dass aufgerufen wird.

Nephente
quelle
3
"4. $ HOME / bin vor $ PATH stellen" .. bereits voreingestellt ~/.profile- nach dem Erstellen ist nur eine erneute Anmeldung erforderlich ~/bin.
muru
@muru Das stimmt, danke. Zur Antwort hinzugefügt.
Nephente
okay, das hat funktioniert, danke! Um dies zu verdeutlichen, dass ich zuvor auch Python 3.4.3 installiert hatte (und Pip und Pip3 waren beide damit verbunden), jetzt habe ich 2.7, 3.4, 3.5. Jetzt werde ich pip neu installieren und auf 3.5 verweisen!
Unheimliche
Anaconda wird mit einem eigenen Paketmanager namens conda ausgeliefert. Es verwaltet auch virtuelle Umgebungen. Ich benutze das, um Pakete anstelle von pip zu installieren.
Nephente
7

Gute Antwort hier: /programming/24405561/how-to-install-2-anacondas-python-2-7-and-3-4-on-mac-os-10-9

conda create -n python2 python=2.7 anaconda

dann, um zu wechseln:

source activate python2
Patrick Dolan
quelle
Wenn Sie dies brauchen, könnten Sie sehr wohl tiefere Probleme haben. Wenn Ihr System wichtig ist, führen Sie eine vollständige Überprüfung aller Python-abhängigen Befehle und / oder Dienstprogramme durch. Faire Warnung.
SDsolar
3

Wenn jemand seine Python-Standardversion auf 2.7 zurücksetzen möchte, nachdem er sie durcheinander gebracht hat (indem er die Standardversion auf: anaconda oder python 3 geändert hat ) und am Ende nicht funktionierende Software installiert hat, folgen Sie einfach diesem Link: Link mit Anweisungen zum Ändern der Standardversion Python-Version.

Ubdus Samad
quelle
Wenn ein Systemwechsel fehlschlägt, stellen Sie sicher, dass Sie ihn zurücksetzen können. Stellen Sie sicher, dass Sie über gute Systemimagesicherungen verfügen, damit wichtige Änderungen schnell rückgängig gemacht werden können, wenn sie nicht Ihren Plänen entsprechen. Denken Sie professionell. Wenn Sie Amateurtechniken anwenden, können Sie keine professionellen Ergebnisse erwarten.
SDsolar
1

Dies funktionierte für mich, aber für Miniconda, es sollte auch für Anaconda funktionieren, aber bitte korrigieren Sie mich, wenn ich falsch liege.

Holen Sie sich zuerst Ihre $ PATH- Variable:

echo $PATH

Es wird wahrscheinlich so aussehen (Miniconda-Pfad vor allem anderen):

/home/your_user/miniconda3/bin:$PATH

Kopieren Sie diesen Pfad an das Ende Ihrer ~ / .bashrc- Datei, aber mit Miniconda am Ende anstelle des Pfadanfangs wie folgt:

export PATH="$PATH:/home/your_user/miniconda3/bin"

Das System sucht nach Programmen am Anfang der Variablen $ PATH vor dem Ordner miniconda3 / bin.

Es sollte die Versionen für frühere Programme wiederherstellen, die Sie wie Python hatten.

Ab Conda 4.4 wurde der hinzugefügte Code in ~ / .bashrc geändert. Um dasselbe zu erreichen, bearbeiten Sie ~ / .bashrc und kommentieren Sie die folgende Zeile wie folgt aus, um zu verhindern, dass die Basisschicht (Basisumgebung) in jedem Terminal aktiviert wird. Sie müssen keinen anderen Teil der neuen Ergänzungen berühren. Ich bin mir nicht sicher, welche Bedeutung es CONDA_CHANGEPS1=falsehat, bin aber bisher noch nicht auf irgendwelche Probleme gestoßen.

   # CONDA_CHANGEPS1=false conda activate base

Und während Sie nicht den Conda Ordner im Pfad mehr sehen, das condawird Befehl noch gut laufen, und Ihre ursprünglichen python, python3und pipenvBefehle werden als gut.

pedrodcb
quelle
Ich stimme zu, weil ich denke, dass Sie richtig sind. Dies ist gut in der Datenbank zu haben. Kann ich Sie jedoch bitten, die Versionsnummern der betreffenden Software etwas genauer zu bestimmen?
SDsolar
Vielen Dank, und ich denke nicht wirklich, dass die Programmversion wichtig ist, das sollte immer funktionieren. Zu der Zeit war mein Installer jedoch in der folgenden Version: Miniconda3 4.3.14. Hilft das?
pedrodcb
0

Hier ist meine Antwort, und es kann die tatsächliche spezifische Antwort auf das sein, was Sie Ihrem eigenen System angetan haben oder nicht.

Ich bin jedoch in einer ähnlichen Situation und hatte die gleichen Bedenken.

Ich benutze Ubuntu 16.04 LTS und Python 2.7.12 und habe gerade Anaconda installiert.

Wenn ich jetzt in die Befehlszeile pythongehe und tippe, geht es immer noch zu meiner Python2-Installation.

Bestätigt durch diese Sequenz:

$which python
/usr/bin/python     <  Catch-all for max compatibility
$python
Python 2.7.12 . . etc

In meinem Fall anacondaverursacht das also KEIN Problem mit meinem Standard-Python2-Shebangs.

Letztendlich ist das die Frage.

Wenn Sie das System fragen, können which pythonSie darauf vertrauen, dass es sich um die richtige Zeichenfolge handelt, die in der ersten Zeile Ihrer Python-Programme im Befehlszeilenstil verwendet wird.

In meiner Situation werden alle meine Python-Befehlszeilenskriptdateien weiterhin einwandfrei ausgeführt.

Ich neige dazu, Python in einem 3-kompatiblen Modus zu schreiben. Zum Beispiel Klammern um meine print-Anweisungen. Aber ich widersetze mich aktiv einer großen Änderung des Systems, die dazu führen könnte, dass hart umkämpfte Python 2-Programme auf Pannen stoßen. Python 3 klingt großartig, ist aber für meine Bedürfnisse unnötig. Python 2 ist eine erstaunliche Sprache.

Meine Computerumgebung ermöglicht es mir nicht, frühere Prozesse, die so eingestellt wurden, dass sie korrekt funktionieren, neu zu konstruieren, ohne einen großen Zeitverlust zu erleiden, da ich zurückgehen und herausfinden müsste, wo ich sie ursprünglich verwendet habe.


Fazit für mich: Bei der Installation anacondafür die zukünftige Verwendung hatte ich keine Geschwindigkeitsstörungen oder Probleme.


Das ist der Punkt, an dem ich gerade dabei bin ... Ich bin gerade damit fertig, die gesamte bisherige Software erneut zu zertifizieren.


Der nächste Schritt besteht darin, einige der coolen Sachen zu verwenden, die im Paket versprochen werden.


Also, ich muss vermuten, dass andere einfach dort installieren anacondamüssen, um Ihre Situation mehr sein.

Nach meiner Erfahrung ist das überhaupt kein Problem.

SDsolar
quelle
Zu Ihrer Information, ich habe eine komplette wissenschaftliche Workstation, die sich mit Solardynamik beschäftigt. Auch über Ephemeriden und Satelliteninteraktionen. Es muss funktionieren. Ich bin also nicht nur ein One-Trick-Pony. Ich installiere eine Sache nach der anderen und überprüfe dann, ob alles funktioniert, bevor das funktioniert. Dann gehe ich zum nächsten über. SciPy, Matplotlab usw. (Ich bevorzuge das Plotten mit Gnuplot). Bitte haben Sie Verständnis dafür, dass ich diese Antwort als Datenpunkt von einem aktiven, rund um die Uhr arbeitenden System in einer akademischen Forschungsumgebung einreiche. Dies ist keine Testumgebung, sondern eine tägliche Produktion.
SDsolar
Auch, wie ich oben in einem Kommentar angedeutet habe, DENKE PROFESSIONELL. Diese Systeme werden von hochrangigen Forschern auf der ganzen Welt eingesetzt. -> Vergewissern Sie sich, dass auf Ihrem Startlaufwerk ein Klon vorhanden ist, bevor Sie größere Systemaktualisierungen durchführen. Der ddBefehl ist schnell und einfach und SATA-Verbindungen sind einfach. Es gibt keinen Grund, den Schutz Ihres Systems zu vermeiden. Achten Sie nur darauf, dass Sie bei jedem Schritt alle möglicherweise vorgenommenen Änderungen rückgängig machen können. Festplatten sind viel günstiger als Ihre Zeit. (es sei denn, Sie glauben nicht, dass das stimmt). Zuschussmittel und eine Zeitkrise sollten Anreiz genug sein.
SDsolar