Jak zmusić Condę i Virtualenv do pracy na Mac OS Catalina?


12

Poprzednio Conda działała płynnie na Mojave, ale zauważyłem, że uaktualnienie do Cataliny przenosi folder „anaconda3” na pulpit> Przeniesione elementy> Bezpieczeństwo> anaconda3. Wygląda na to, że ustawienia zabezpieczeń Cataliny mogą nie zezwalać na instalowanie aplikacji bezpośrednio w katalogu użytkownika.

Wypróbowałem tutaj sugestię napisaną poniżej:

Cześć, mogę mieć rozwiązanie

  • Skopiuj folder anaconda3 znajdujący się w Relocated Items do / Users / myname /
  • Otwórz terminal
  • Wpisz: export PATH = '' / Users / myname / anaconda3 / bin: $ PATH ”
  • Wpisz: conda init zsh

Zadziałało! Powodzenia!

Ale to nie działa dla mnie. Po conda init zshotrzymaniu:

-bash: / Users / USER / anaconda3 / bin / conda: / anaconda3 / bin / python: zły interpreter: Brak takiego pliku lub katalogu

Jak mogę ponownie uruchomić Condę bez utraty wszystkich wirtualnych środowisk? Dzięki!


Aktualizacja

Zmusiłem Condę do pracy zgodnie z sugestią @Teda Shaowanga. Oznacza to, że conda env listpokazuje wszystkie środowiska wirtualne utworzone za pośrednictwem Conda.

Jednak nadal mam problem z tym, virtualenvże ponieważ zmieniłem domyślne lokalizacje plików anaconda3, nie można znaleźć Pythona.

.virtualenvs/env/bin/pythonNie można znaleźć pliku wykonywalnego Pythona . Czy muszę wprowadzić dalsze zmiany, aby Python również działał virtualenv?


Na podstawie błędu wygląda na to, że nadal używasz bash, ale sugerowane rozwiązanie jest dla zsh(nowa domyślna Catalina). Spróbuj conda init bashzamiast tego.
merv

Mam ten sam błąd. bashteż nie działa.
Kaymal,

Odpowiedzi:


6

Mam dokładnie ten sam problem i to działa dla mnie:

Po przeniesieniu anakondy z „Relocated Items” do ~/anaconda3, edytuj pierwszy wiersz ~/anaconda3/bin/condapliku od #!/anaconda3/bin/pythondo, #!/Users/USERNAME/anaconda3/bin/pythonaby odzwierciedlić zmianę.


1
Czy to wpływa na ustawienia pip i Jupyter?
rrz0,

1
Nie rozwiązuje to wszystkich problemów związanych z anaconda3 i pythonem. Pojawia się błąd: Nie można uruchomić programu. "/Users/USER/.virtualenvs/env/bin/python"Brak takiego pliku lub katalogu. Kiedy sprawdzam w Finderze, plik rzeczywiście brakuje i nie można go znaleźć.
rrz0

3

Prawdopodobnie powstrzymałbym się od korzystania z powyższego rozwiązania. Ten ~/anaconda3/binkatalog zawiera wiele plików wykonywalnych (nie tylko ten conda), które należałoby zmienić w ten ręczny sposób. Na przykład, chyba że dokonasz tej samej zmiany, nie będziesz mógł uruchomić jupyter notebookani z, baseani z innych envów, które możesz mieć.

Moja wskazówka: spróbuj uzyskać plik wymagań dla wirtualnych środowisk i wykonaj nową instalację. Możesz użyć, pipreqsaby uzyskać wymagania stosowane do poszczególnych projektów: https://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/


Dzieki za sugestie. Jak mówisz, problem też pozostaje virtualenv.
rrz0

3
Zobacz post na blogu zalecający narzędzie do naprawy: anaconda.com/…
msarahan


1

Technicznie jest to ponowna instalacja anakondy, jednak przywróciłem wszystkie moje encyklopedie conda, więc mam nadzieję, że jest to akceptowalne rozwiązanie!

Oto, jak działałem na Catalinie kilka minut temu (teraz przy użyciu powłoki Z): - Sprawdziłem istnienie katalogu „Relocated Items” na moim pulpicie oraz katalogu „anaconda3” i jego zawartości w środku - Nawigowałem do katalog envs pod „anaconda3” i pozostawił otwarte okno wyszukiwarki (patrz zrzut ekranu)

wprowadź opis zdjęcia tutaj

NASTĘPNIE:

  • otworzył nowy terminal (z-shell)
  • uruchomił (to zainstalowane na / usr / local / anaconda3):

    zaparz beczkę zainstaluj anakondę

  • po pomyślnej instalacji otworzyłem mój plik ~ / .zshrc (dla moich aliasów powłoki Z) i dodałem następujący wiersz:

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

  • zapisałem mój plik ~ / .zshrc, a następnie ponownie załadowałem:

    źródło ~ / .zshrc

  • aby sprawdzić, czy polecenie conda działa teraz, uruchomiłem:

    lista env conda

  • dla mnie pokazało to podstawową env i to było to

  • następnie otwórz Finder do nowej lokalizacji envs: open / usr / local / anaconda3 / envs /.

  • Przeciągnąłem (przeniosłem) wszystkie moje stare envs do nowego folderu envs, a następnie uruchomiłem:

    lista env conda

I wszystkie moje stare środowiska wracają! :)

  • zaktualizowałem moje ścieżki interpretera / env PyCharm, aby odzwierciedlić nowe lokalizacje env (musiałem ponownie uruchomić PyCharm później, ale teraz działa!)
  • GOTOWY

Dzięki za Twoją sugestię. Czy to też działa virtualenv? Mam niektóre, virtualenvsktórych nie mogę używać w Pycharmie, ponieważ ciągle pojawia się komunikat „Błąd: nie można uruchomić programu” /Users/USER/.virtualenvs/baseline_env/bin/python "Brak takiego pliku lub katalogu. W Finderze otrzymuję również"The original item python cannot be found.
rrz0

1
Zobacz post na blogu zalecający narzędzie do naprawy większej liczby zerwanych połączeń: anaconda.com/…
msarahan

1
@ Rrz0 na podstawie tego, co napisałeś Chyba ścieżka do virtualenv jest zła. Jest to zhackowane, ale jeśli możesz dostać się do swojej virtualenv, myślę, że powinieneś być w stanie skopiować ścieżkę do niego i edytować wpisy w PyCharm (jeśli virtualenvs są w ofercie przeniesionych przedmiotów, nie jestem pewien, gdzie doradzić ci umieść je) - Jeśli możesz dostać się do swoich starych wirtualnych wirtualnych, możesz (jeden po drugim) aktywować je z powłoki i uruchomić: pip freeze> wymagania_VENV_NAME.txt - w PyCharm utwórz nowe wirtualne wirtualne - uruchom każdą nową wirtualną wirtualny wirtualny serwer i uruchom: pip install - r wymagania_VENV_NAME.txt
Phil S

Dziękuję @PhilS, coś w tym stylu skończyło się działaniem.
rrz0

0

Nie jestem pewien, czy jest to komentarz, czy przynajmniej tymczasowa odpowiedź, ale na razie powstrzymałbym się od próby rozwiązania problemów z kompatybilnością Cataliny z Anacondą. Zobacz ten problem z GitHub .


0

Mam ten sam problem i ta praca jest dla mnie: Moje rozwiązanie:

  1. Skopiuj swoją anaconda3 z folderu Relocated Items
  2. Wklej User / YourUserName
  3. Otwórz plik conda w anaconda3 / bin za pomocą edytora i edytuj pierwszy wiersz #!/anaconda3/bin/pythondo#!/Users/YourUserName/anaconda3/bin/python
  4. Zapisz go i uruchom plik conda
  5. Otwórz terminal
  6. Uruchomić to : export PATH=''/Users/YourUserName/anaconda3/bin:$PATH"
  7. Biegać conda init zsh

Czy muszę na przykład wprowadzać dalsze zmiany, aby Python również działał virtualenv?
rrz0,

0

Poniosłem ten sam problem, a następujące rozwiązanie działało dla mnie i jest to najłatwiejsze rozwiązanie:

Zamiast bawić się przy kopiowaniu pliku anaconda3 z przeniesionych elementów do katalogu User / USERNAME, lepiej byłoby po prostu ponownie zainstalować najnowszą wersję anaconda navigator z oficjalnej strony: https://www.anaconda.com/distribution/#macos

Podczas instalacji poprosi Cię o pewne uprawnienia wynikające z nowych Zasad bezpieczeństwa Apple, po prostu je udziel, i działa tak, jak powinno po tej nowej instalacji!


0

To działało dla mnie.

Oto moje pliki nagłówkowe (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

Uruchom, sudo find /Library -name stdio.haby zobaczyć, gdzie się znajdują.

Pliki nagłówkowe Mojave 10.14:

$ 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

Jak widać, SDK są teraz podzielone na MACOSX10.14 i 10.15, inaczej niż w Mojave.

TLDR

To były moje foldery SDK na Catalinie:

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

  1. Zmień nazwę MacOSX.sdknaMacOSX_orig.sdk
  2. Kliknij prawym przyciskiem myszy MacOSX10.14.sdk
  3. Duplikować
  4. Zmień nazwę duplikatu folderu na MacOSX.sdk

Struktura folderów powinna teraz wyglądać następująco:

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

W ten sposób zasadniczo używamy sdk OSX poprzedniej wersji jako sysroot. Mam nadzieję że to pomoże.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.