¿Cómo hacer que Conda y Virtualenv funcionen en Mac OS Catalina?

12

Anteriormente tenía a Conda funcionando sin problemas en Mojave, pero descubrí que la actualización a Catalina mueve la carpeta "anaconda3" a su Escritorio> Elementos reubicados> Seguridad> anaconda3. Parece que la configuración de seguridad de Catalina ya no permite que las aplicaciones se instalen directamente en el directorio de usuarios.

Intenté la sugerencia aquí , escrita a continuación:

Hola, podría tener una solución.

  • Copie la carpeta anaconda3 ubicada en Elementos reubicados en / Users / myname /
  • Terminal abierta
  • Ingrese: export PATH = '' / Users / myname / anaconda3 / bin: $ PATH "
  • Ingrese: conda init zsh

¡Funcionó! ¡Buena suerte!

Pero esto no funciona para mí. Después de conda init zshque obtenga:

-bash: / Users / USER / anaconda3 / bin / conda: / anaconda3 / bin / python: mal intérprete: No existe tal archivo o directorio

¿Cómo puedo hacer que Conda vuelva a funcionar sin perder todos mis entornos virtuales? ¡Gracias!


Actualizar

Conseguí que Conda trabajara siguiendo la sugerencia de @Ted Shaowang. Esto significa que conda env listmuestra todos los entornos virtuales creados a través de Conda.

Sin embargo, todavía estoy experimentando un problema virtualenv, ya que desde que cambié las ubicaciones predeterminadas del archivo anaconda3, no se puede encontrar Python.

El ejecutable de Python ubicado en .virtualenvs/env/bin/pythonno se puede encontrar. ¿Necesito hacer más cambios para que Python también funcione virtualenv?

rrz0
fuente
Por su error, parece que todavía está usando bash, pero la solución sugerida es zsh(el nuevo valor predeterminado de Catalina). Intenta en su conda init bashlugar.
merv
Tengo el mismo error. bashtampoco funciona
Kaymal

Respuestas:

6

Tengo exactamente el mismo problema y esto funciona para mí:

Después de mover anaconda de "Elementos reubicados" a ~/anaconda3, edite la primera línea de ~/anaconda3/bin/condaarchivo de #!/anaconda3/bin/pythona #!/Users/USERNAME/anaconda3/bin/pythonpara reflejar el cambio.

Ted Shaowang
fuente
1
¿Esto afecta la configuración de pip y Jupyter?
rrz0
1
Esto no parece resolver todos los problemas relacionados con anaconda3 y python. Recibo un error: no se puede ejecutar el programa "/Users/USER/.virtualenvs/env/bin/python"No existe tal archivo o directorio. Cuando reviso el Finder, el archivo falta y no se puede ubicar.
rrz0
3

Probablemente me abstendré de usar la solución anterior. Ese ~/anaconda3/bindirectorio tiene muchos ejecutables (no solo el condauno) que tendrían que modificarse de esta manera manual. Por ejemplo, a menos que realice el mismo cambio, no podrá ejecutarlo jupyter notebook, ni desde baseni desde otros envs que pueda tener.

Mi consejo: intente obtener un archivo de requisitos para sus entornos virtuales y realice una instalación nueva. Puede utilizar pipreqspara obtener los requisitos utilizados para proyectos individuales: https://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/

Cristina Morariu
fuente
Gracias por la sugerencia. Como dices, el problema sigue siendo virtualenvtambién.
rrz0
3
Consulte la publicación de blog que recomienda una herramienta para solucionar esto: anaconda.com/…
msarahan
1

Técnicamente, esto es reinstalar anaconda, sin embargo, restauré todos mis env conda, así que espero que sea una solución aceptable.

Así es como lo conseguí trabajando en Catalina hace unos minutos (ahora usando z-shell): - Verifiqué la existencia del directorio "Elementos reubicados" en mi escritorio y el directorio "anaconda3" y su contenido dentro - Navegué al directorio envs en "anaconda3" y dejó abierta la ventana del buscador (ver captura de pantalla)

ingrese la descripción de la imagen aquí

ENTONCES:

  • abrió una nueva Terminal (z-shell)
  • ejecutó (esta instalado en / usr / local / anaconda3):

    instalar barril de cerveza anaconda

  • después de que la instalación se realizó correctamente, abrí mi archivo ~ / .zshrc (para mis alias de z-shell) y agregué la siguiente línea:

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

  • guardé mi archivo ~ / .zshrc, luego lo volví a cargar con:

    fuente ~ / .zshrc

  • para verificar que el comando conda funciona ahora, ejecuté:

    conda env list

  • para mí, esto mostró una env base y eso fue todo

  • luego abra Finder en la nueva ubicación de envs: abra / usr / local / anaconda3 / envs /.

  • Arrastré (moví) todos mis viejos envs a la nueva carpeta de envs, y luego ejecuté:

    conda env list

¡Y todos mis viejos envs han vuelto! :)

  • actualicé mis rutas de intérprete / env PyCharm para reflejar las nuevas ubicaciones de estos envs (tuve que reiniciar PyCharm después, ¡pero ahora funciona!)
  • HECHO
Phil S
fuente
Gracias por tu sugerencia. ¿Funciona esto virtualenvtambién? Tengo algunos virtualenvsque no puedo usar en Pycharm porque sigo recibiendo `Error: No se puede ejecutar el programa" /Users/USER/.virtualenvs/baseline_env/bin/python "No existe tal archivo o directorio". En Finder también obtengo"The original item python cannot be found.
rrz0
1
Consulte la publicación de blog que recomienda una herramienta para reparar conexiones más rotas: anaconda.com/…
msarahan
1
@ Rrz0 basado en lo que escribió, supongo que el camino a virtualenv está mal. Es hacky, pero si puedes llegar a tu virtualenv, creo que deberías poder copiar la ruta y editar las entradas en PyCharm (si los virtualenvs están en el acuerdo de elementos movidos, entonces no estoy seguro de dónde aconsejarle póngalos) - Si puede acceder a sus viejos virtualenvs, puede (uno por uno) activarlos desde el shell y ejecutar: pip freeze> require_VENV_NAME.txt - en PyCharm cree nuevos virtualenvs - active cada nuevo virtualenv y ejecute: pip install - r required_VENV_NAME.txt
Phil S
Gracias @PhilS, algo en ese sentido terminó funcionando.
rrz0
0

No estoy seguro de si esto se considera un comentario o al menos una respuesta temporal, pero me abstendré de intentar solucionar cualquier problema de compatibilidad de Catalina con Anaconda por ahora. Vea este problema de GitHub .

Sean Wangnick
fuente
0

Tengo el mismo problema, y ​​esto funciona para mí: mi solución:

  1. Copie su anaconda3 de la carpeta Elementos reubicados
  2. Pegar en Usuario / YourUserName
  3. Abra el archivo conda en anaconda3 / bin con el editor y edite la primera línea #!/anaconda3/bin/pythonpara#!/Users/YourUserName/anaconda3/bin/python
  4. Guárdelo y ejecute el archivo conda
  5. Terminal abierta
  6. Ejecuta esto : export PATH=''/Users/YourUserName/anaconda3/bin:$PATH"
  7. correr conda init zsh
TANQUE NK
fuente
¿Debo hacer más cambios para que Python también funcione virtualenv, por ejemplo?
rrz0
0

Había incurrido en el mismo problema, y ​​la siguiente solución funcionó para mí, y esta es la solución más fácil:

En lugar de perder el tiempo copiando el archivo anaconda3 de los elementos reubicados en el directorio User / USERNAME, sería mejor reinstalar la última versión del navegador anaconda desde su sitio web oficial: https://www.anaconda.com/distribution/#macos

Durante la instalación, le pedirá algunos permisos que son el resultado de las nuevas Políticas de seguridad de Apple, solo otórgueles, ¡y funciona como debería después de esta nueva instalación!

shreyas labhsetwar
fuente
0

Esto es lo que funcionó para mí.

Estos son mis archivos de encabezado (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

Corre sudo find /Library -name stdio.hpara ver dónde están los tuyos.

Archivos de encabezado 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

Como se puede ver, los SDK ahora se dividen en MACOSX10.14 y 10.15 a diferencia de Mojave.

TLDR

Entonces, estas fueron mis carpetas SDK en Catalina:

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

  1. Renombrar MacOSX.sdkaMacOSX_orig.sdk
  2. Haga clic derecho en MacOSX10.14.sdk
  3. Duplicar
  4. Cambiar el nombre de la carpeta duplicada a MacOSX.sdk

La estructura de su carpeta ahora debería verse así:

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

De esta manera, básicamente estamos usando el sdk OSX de la versión anterior como sysroot. Espero que esto ayude.

rrz0
fuente