Come far funzionare Conda e Virtualenv su Mac OS Catalina?


12

In precedenza Conda funzionava senza problemi su Mojave, ma ho scoperto che l'aggiornamento a Catalina sposta la cartella "anaconda3" sul desktop> Elementi trasferiti> Sicurezza> anaconda3. Sembra che le impostazioni di sicurezza di Catalina potrebbero non consentire più alle applicazioni di installarsi direttamente nella directory dell'utente.

Ho provato il suggerimento qui , scritto di seguito:

Ciao, potrei avere una soluzione

  • Copia la cartella anaconda3 situata in Elementi trasferiti in / Utenti / mio nome /
  • Terminale aperto
  • Immettere: export PATH = '' / Users / mio nome / anaconda3 / bin: $ PATH "
  • Immettere: conda init zsh

Ha funzionato! In bocca al lupo!

Ma questo non funziona per me. Dopo conda init zshche ottengo:

-bash: / Users / USER / anaconda3 / bin / conda: / anaconda3 / bin / python: cattivo interprete: nessun file o directory

Come posso rendere Conda nuovamente funzionante senza perdere tutti i miei ambienti virtuali? Grazie!


Aggiornare

Ho fatto lavorare Conda seguendo il suggerimento di @Ted Shaowang. Ciò significa che conda env listmostra tutti gli ambienti virtuali creati tramite Conda.

Tuttavia sto ancora riscontrando un problema con il fatto che virtualenvda quando ho modificato i percorsi predefiniti dei file anaconda3, non è stato possibile trovare python.

.virtualenvs/env/bin/pythonImpossibile trovare l' eseguibile python situato in . Devo apportare ulteriori modifiche affinché anche Python funzioni virtualenv?


Dal tuo errore sembra che tu stia ancora utilizzando bash, ma la soluzione suggerita è per zsh(il nuovo predefinito di Catalina). Prova conda init bashinvece.
Merv

Ho avuto lo stesso errore. bashnon funziona neanche.
Kaymal,

Risposte:


6

Ho lo stesso identico problema e questo funziona per me:

Dopo aver spostato l'anaconda da "Elementi trasferiti" a ~/anaconda3, modifica la prima riga del ~/anaconda3/bin/condafile da #!/anaconda3/bin/pythona #!/Users/USERNAME/anaconda3/bin/pythonper riflettere la modifica.


1
Questo ha effetto sulle impostazioni pip e Jupyter?
rrz0

1
Questo non sembra risolvere tutti i problemi relativi ad anaconda3 e python. Ricevo errore: Impossibile eseguire il programma "/Users/USER/.virtualenvs/env/bin/python"Nessun file o directory. Quando accedo a Finder, il file è effettivamente mancante e non può essere individuato.
rrz0

3

Mi asterrei probabilmente dall'usare la soluzione di cui sopra. Quella ~/anaconda3/bindirectory ha molti file eseguibili (non solo condaquello) che dovrebbero essere modificati in questo modo manuale. Ad esempio, a meno che non si esegua la stessa modifica, non è possibile eseguire jupyter notebook, né da basené da altri ambienti che si potrebbero avere.

Il mio consiglio: prova a ottenere un file di requisiti per i tuoi ambienti virtuali e fai una nuova installazione. È possibile utilizzare pipreqsper ottenere i requisiti utilizzati per i singoli progetti: https://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/


Grazie per il suggerimento Come dici tu, anche il problema persiste virtualenv.
rrz0

3
Si prega di consultare il post sul blog che consiglia uno strumento per risolvere questi
problemi


1

Tecnicamente si tratta di reinstallare anaconda, tuttavia, ho ripristinato tutte le mie condizioni, quindi spero che questa sia una soluzione accettabile!

Ecco come l'ho fatto funzionare su Catalina qualche minuto fa (ora usando z-shell): - Verificato l'esistenza della directory "Relocated Items" sul mio desktop e la directory "anaconda3" e il suo contenuto all'interno - Navigato nella directory envs in "anaconda3" e ha lasciato aperta la finestra del Finder (vedi screenshot)

inserisci qui la descrizione dell'immagine

POI:

  • aperto nuovo Terminale (z-shell)
  • eseguito (installato su / usr / local / anaconda3):

    botte di birra installare anaconda

  • dopo che l'installazione è andata a buon fine ho aperto il mio file ~ / .zshrc (per i miei alias z-shell) e ho aggiunto la seguente riga:

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

  • salvato il mio file ~ / .zshrc, quindi ricaricato con:

    fonte ~ / .zshrc

  • per verificare che il comando conda funzioni ora, ho eseguito:

    Elenco conda env

  • per me, questo ha mostrato un ambiente di base e basta

  • quindi apri Finder nella nuova posizione envs: apri / usr / local / anaconda3 / envs /.

  • Ho trascinato (spostato) tutti i miei vecchi envs nella nuova cartella envs, quindi ho eseguito:

    Elenco conda env

E tutti i miei vecchi env sono tornati! :)

  • aggiornato i miei percorsi di interprete / env PyCharm per riflettere le nuove posizioni di questi env (dopo aver dovuto riavviare PyCharm, ma ora funziona!)
  • FATTO

Grazie per il tuo suggerimento Funziona virtualenvanche per questo? Ne ho alcuni virtualenvsche non riesco a usare in Pycharm poiché continuo a ricevere `Errore: Impossibile eseguire il programma" /Users/USER/.virtualenvs/baseline_env/bin/python "Nessun file o directory simile. Nel Finder ottengo anche"The original item python cannot be found.
rrz0

1
Si prega di consultare il post sul blog che consiglia uno strumento per correggere più connessioni interrotte: anaconda.com/…
msarahan

1
@ Rrz0 in base a quello che hai scritto immagino che il percorso di virtualenv sia sbagliato. È complicato, ma se riesci ad accedere al tuo virtualenv penso che dovresti essere in grado di copiarne il percorso e modificare le voci in PyCharm (se i virtualenv sono nel contratto degli oggetti spostati, non sono sicuro di dove consigliarti inseriscili) - Se riesci ad accedere ai tuoi vecchi virtual virtual, puoi (uno per uno) attivarli dalla shell ed eseguirli: pip freeze> Requisiti_VENV_NAME.txt - in PyCharm crea nuovi virtualviv - attiva ogni nuovo virtualenv ed esegui: pip install - r Requisiti_VENV_NAME.txt
Phil S

Grazie @PhilS, qualcosa del genere ha finito per funzionare.
rrz0

0

Non sono sicuro che questo sia considerato un commento o almeno una risposta temporanea, ma mi asterrei dal tentare di risolvere eventuali problemi di compatibilità con Catalina con Anaconda per ora. Vedi questo numero di GitHub .


0

Ho lo stesso problema e questo lavoro per me: La mia soluzione:

  1. Copia la tua anaconda3 dalla cartella Elementi trasferiti
  2. Incolla in User / YourUserName
  3. Apri il file conda in anaconda3 / bin con l'editor e modifica la prima riga #!/anaconda3/bin/pythonin#!/Users/YourUserName/anaconda3/bin/python
  4. Salvalo ed esegui il file conda
  5. Terminale aperto
  6. Esegui questo: export PATH=''/Users/YourUserName/anaconda3/bin:$PATH"
  7. Correre conda init zsh

Devo apportare ulteriori modifiche affinché anche Python funzioni virtualenv, ad esempio?
rrz0

0

Avevo riscontrato lo stesso problema e la seguente soluzione ha funzionato per me, e questa è la soluzione più semplice:

Invece di scherzare copiando il file anaconda3 dagli elementi trasferiti nella directory User / USERNAME, sarebbe meglio reinstallare l'ultima versione di anaconda navigator dal suo sito Web ufficiale: https://www.anaconda.com/distribution/#macos

Durante l'installazione, ti chiederanno alcune autorizzazioni che sono il risultato di nuove Politiche di sicurezza di Apple, concedile e funziona come dovrebbe dopo questa nuova installazione!


0

Questo è ciò che ha funzionato per me.

Questi sono i miei file di intestazione (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

Corri sudo find /Library -name stdio.hper vedere dove si trovano i tuoi.

File di intestazione 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

Come si può vedere, gli SDK sono ora suddivisi in MACOSX10.14 e 10.15 a differenza di Mojave.

TLDR

Quindi, queste erano le mie cartelle SDK su Catalina:

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

  1. Rinomina MacOSX.sdkinMacOSX_orig.sdk
  2. Fare clic destro su MacOSX10.14.sdk
  3. Duplicare
  4. Rinomina la cartella duplicata in MacOSX.sdk

La struttura delle cartelle ora dovrebbe apparire così:

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

In questo modo stiamo fondamentalmente usando OSD sdk della versione precedente come sysroot. Spero che sia di aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.