Wie können Conda und Virtualenv unter Mac OS Catalina verwendet werden?

12

Ich hatte zuvor Conda auf Mojave reibungslos laufen lassen, aber ich habe festgestellt, dass das Upgrade auf Catalina den Ordner "anaconda3" auf Ihren Desktop> Verschobene Elemente> Sicherheit> anaconda3 verschiebt. Es scheint, dass die Sicherheitseinstellungen von Catalina es möglicherweise nicht mehr ermöglichen, Anwendungen direkt unter dem Benutzerverzeichnis zu installieren.

Ich habe versucht , den Vorschlag hier , geschrieben unter:

Hallo, ich könnte eine Lösung haben

  • Kopieren Sie den Ordner anaconda3 unter Relocated Items nach / Users / myname /
  • Terminal öffnen
  • Geben Sie Folgendes ein: export PATH = '' / Users / myname / anaconda3 / bin: $ PATH "
  • Geben Sie ein: conda init zsh

Es funktionierte! Viel Glück!

Aber das funktioniert bei mir nicht. Nachdem conda init zshich bekommen habe:

-bash: / Users / USER / anaconda3 / bin / conda: / anaconda3 / bin / python: fehlerhafter Interpreter: Keine solche Datei oder kein solches Verzeichnis

Wie kann ich Conda wieder zum Laufen bringen, ohne alle meine virtuellen Umgebungen zu verlieren? Vielen Dank!


Aktualisieren

Ich brachte Conda dazu, nach dem Vorschlag von @Ted Shaowang zu arbeiten. Dies bedeutet, dass conda env listalle über Conda erstellten virtuellen Umgebungen angezeigt werden.

Es tritt jedoch immer noch ein Problem mit virtualenvauf, da Python nicht gefunden wurde, da ich die Standardspeicherorte für Anaconda3-Dateien geändert habe.

Die ausführbare Python-Datei unter befindet .virtualenvs/env/bin/pythonsich nicht. Muss ich weitere Änderungen vornehmen, damit Python auch funktioniert virtualenv?

rrz0
quelle
Aus Ihrem Fehler geht hervor, dass Sie immer noch verwenden bash, aber die vorgeschlagene Lösung ist für zsh(die neue Catalina-Standardeinstellung). Versuchen Sie es conda init bashstattdessen.
Merv
Ich habe den gleichen Fehler bekommen. bashgeht auch nicht.
Kaymal

Antworten:

6

Ich habe genau das gleiche Problem und das funktioniert bei mir:

Nachdem Sie anaconda von "Relocated Items" nach verschoben haben ~/anaconda3, bearbeiten Sie die erste Zeile der ~/anaconda3/bin/condaDatei von #!/anaconda3/bin/pythonbis #!/Users/USERNAME/anaconda3/bin/python, um die Änderung widerzuspiegeln.

Ted Shaowang
quelle
1
Beeinflusst dies die Pip- und Jupyter-Einstellungen?
rrz0
1
Dies scheint nicht alle Probleme im Zusammenhang mit Anaconda3 und Python zu lösen. Ich erhalte den Fehler: Programm kann nicht ausgeführt werden "/Users/USER/.virtualenvs/env/bin/python"Keine solche Datei oder kein solches Verzeichnis. Wenn ich im Finder einchecke, fehlt die Datei tatsächlich und kann nicht gefunden werden.
rrz0
3

Ich würde wahrscheinlich auf die obige Lösung verzichten. Dieses ~/anaconda3/binVerzeichnis enthält viele ausführbare Dateien (nicht nur die condaeine), die auf diese manuelle Weise geändert werden müssten. Wenn Sie beispielsweise nicht dieselbe Änderung vornehmen, können Sie jupyter notebookweder von basenoch von anderen Umgebungen aus ausführen, die Sie möglicherweise haben.

Mein Tipp: Versuchen Sie, eine Anforderungsdatei für Ihre virtuellen Umgebungen abzurufen, und führen Sie eine Neuinstallation durch. Sie können verwenden pipreqs, um die Anforderungen für einzelne Projekte abzurufen : https://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/

Cristina Morariu
quelle
Danke für den Vorschlag. Wie Sie sagen, bleibt das Problem auch bei virtualenv.
rrz0
3
Bitte siehe Blogeintrag ein Tool empfehlen diese zu beheben: anaconda.com/...
msarahan
1

Technisch gesehen ist dies eine Neuinstallation von Anaconda. Ich habe jedoch alle meine Conda-Umgebungen wiederhergestellt. Hoffentlich ist dies eine akzeptable Lösung!

So habe ich es vor einigen Minuten auf Catalina zum Laufen gebracht (jetzt mit Z-Shell): - Es wurde das Vorhandensein des Verzeichnisses "Relocated Items" auf meinem Desktop und des Verzeichnisses "anaconda3" sowie dessen Inhalt darin überprüft. - Navigierte in das Verzeichnis envs Verzeichnis unter "anaconda3" und ließ das Finder-Fenster offen (siehe Screenshot)

Geben Sie hier die Bildbeschreibung ein

DANN:

  • neues Terminal eröffnet (Z-Shell)
  • ran (dies installiert in / usr / local / anaconda3):

    Braufass Anakonda installieren

  • Nach erfolgreicher Installation habe ich meine ~ / .zshrc-Datei (für meine Z-Shell-Aliase) geöffnet und die folgende Zeile hinzugefügt:

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

  • hat meine ~ / .zshrc-Datei gespeichert und dann neu geladen mit:

    Quelle ~ / .zshrc

  • Um zu überprüfen, ob der Befehl conda jetzt funktioniert, habe ich Folgendes ausgeführt:

    conda env Liste

  • Für mich zeigte dies eine Basisumgebung und das war es

  • Öffnen Sie dann den Finder für den neuen envs-Speicherort: open / usr / local / anaconda3 / envs /.

  • Ich habe alle meine alten Envs in den neuen Envs-Ordner gezogen (verschoben) und dann ausgeführt:

    conda env Liste

Und alle meine alten Envs sind zurück! :) :)

  • Ich habe meine PyCharm-Interpreter- / Env-Pfade aktualisiert, um die neuen Speicherorte dieser Envs wiederzugeben (musste PyCharm danach neu starten, aber jetzt funktioniert es!)
  • ERLEDIGT
Phil S.
quelle
Danke für Ihren Vorschlag. Funktioniert das auch für virtualenv? Ich habe einige, virtualenvsdie ich in Pycharm nicht verwenden kann, da immer wieder "Fehler: Programm kann nicht ausgeführt werden" /Users/USER/.virtualenvs/baseline_env/bin/python "Keine solche Datei oder kein solches Verzeichnis." Im Finder erhalte ich auch"The original item python cannot be found.
rrz0
1
Bitte siehe Blogeintrag ein Werkzeug empfiehlt mehr unterbrochenen Verbindungen zu beheben: anaconda.com/...
msarahan
1
@ Rrz0 basierend auf dem, was du geschrieben hast Ich denke, der Pfad zu virtualenv ist falsch. Es ist hacky, aber wenn Sie zu Ihrer virtuellen Umgebung gelangen können, sollten Sie in der Lage sein, den Pfad dorthin zu kopieren und die Einträge in PyCharm zu bearbeiten (wenn sich die virtuellen Umgebungen im Angebot für verschobene Elemente befinden, bin ich mir nicht sicher, wo ich Sie beraten soll put sie) - Wenn Sie zu Ihren alten virtuellen Umgebungen gelangen können, können Sie sie (einzeln) über die Shell aktivieren und ausführen: pip freeze> require_VENV_NAME.txt - in PyCharm neue virtuelle Umgebungen erstellen - jede neue virtuelle Umgebung aktivieren und ausführen: pip install - r Anforderungen_VENV_NAME.txt
Phil S
Vielen Dank an @PhilS, etwas in dieser Richtung hat funktioniert.
rrz0
0

Wir sind uns nicht sicher, ob dies als Kommentar oder zumindest als vorübergehende Antwort angesehen wird, aber ich würde vorerst nicht versuchen, Probleme mit der Catalina-Kompatibilität mit Anaconda zu beheben. Siehe dieses GitHub- Problem.

Sean Wangnick
quelle
0

Ich habe das gleiche Problem und diese Arbeit für mich: Meine Lösung:

  1. Kopieren Sie Ihre anaconda3 aus dem Ordner "Relocated Items"
  2. Einfügen in User / YourUserName
  3. Öffnen Sie die Conda-Datei in anaconda3 / bin mit dem Editor und bearbeiten Sie die erste Zeile #!/anaconda3/bin/pythonin#!/Users/YourUserName/anaconda3/bin/python
  4. Speichern Sie es und führen Sie die Conda-Datei aus
  5. Terminal öffnen
  6. Führen Sie Folgendes aus: export PATH=''/Users/YourUserName/anaconda3/bin:$PATH"
  7. Lauf conda init zsh
TANK NK
quelle
Muss ich weitere Änderungen vornehmen virtualenv, damit beispielsweise auch Python funktioniert ?
rrz0
0

Ich hatte das gleiche Problem und die folgende Lösung funktionierte für mich, und dies ist die einfachste Lösung:

Anstatt die anaconda3-Datei von verschobenen Elementen in das Verzeichnis User / USERNAME zu kopieren, ist es besser, die neueste Version von anaconda navigator von der offiziellen Website neu zu installieren: https://www.anaconda.com/distribution/#macos

Während der Installation werden Sie nach einigen Berechtigungen gefragt, die sich aus neuen Apple-Sicherheitsrichtlinien ergeben. Gewähren Sie diese einfach und es funktioniert genau so, wie es nach dieser Neuinstallation sein sollte!

Shreyas Labhsetwar
quelle
0

Das hat bei mir funktioniert.

Dies sind meine Header-Dateien (Catalina 10.15):

/Library/Developer/CommandLineTools/usr/include/c++/v1/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h

Laufen Sie, um sudo find /Library -name stdio.hzu sehen, wo sich Ihre befinden.

Mojave 10.14 Header-Dateien:

$ sudo find /Library -name stdio.h 
/Library/Developer/CommandLineTools/usr/include/c++/v1/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h

Wie zu sehen ist, sind die SDKs jetzt anders als in Mojave in MACOSX10.14 und 10.15 aufgeteilt.

TLDR

Das waren also meine SDK-Ordner auf Catalina:

<img width = "208" alt = "image" src = "https://user-images.githubusercontent.com/31866965/67324292-e49a1e00-f513-11e9-997e-9c49e7badbe5.png">

  1. Umbenennen MacOSX.sdkinMacOSX_orig.sdk
  2. Rechtsklick auf MacOSX10.14.sdk
  3. Duplikat
  4. Benennen Sie den doppelten Ordner in um MacOSX.sdk

Ihre Ordnerstruktur sollte nun folgendermaßen aussehen:

<img width = "195" alt = "image" src = "https://user-images.githubusercontent.com/31866965/67318914-74d46500-f50c-11e9-879d-ef0cd3e458cc.png">

Auf diese Weise verwenden wir grundsätzlich das OSX-SDK der vorherigen Version als Sysroot. Hoffe das hilft.

rrz0
quelle