Comment faire fonctionner Conda et Virtualenv sur mac OS Catalina?

12

Auparavant, Conda fonctionnait correctement sur Mojave, mais j'ai constaté que la mise à niveau vers Catalina déplace le dossier "anaconda3" vers votre bureau> Éléments déplacés> Sécurité> anaconda3. Il semble que les paramètres de sécurité de Catalina ne permettent plus aux applications de s'installer directement dans le répertoire utilisateur.

J'ai essayé la suggestion ici , écrite ci-dessous:

Salut, je pourrais avoir une solution

  • Copiez le dossier anaconda3 situé dans Éléments déplacés vers / Users / myname /
  • Terminal ouvert
  • Entrez: export PATH = '' / Users / myname / anaconda3 / bin: $ PATH "
  • Entrez: conda init zsh

Ça a marché! Bonne chance!

Mais ça ne marche pas pour moi. Après conda init zshavoir reçu:

-bash: / Users / USER / anaconda3 / bin / conda: / anaconda3 / bin / python: mauvais interpréteur: aucun fichier ou répertoire de ce type

Comment puis-je remettre Conda en marche sans perdre tous mes environnements virtuels? Merci!


Mise à jour

J'ai fait travailler Conda suite à la suggestion de @Ted Shaowang. Cela signifie que conda env listmontre tous les environnements virtuels créés via Conda.

Cependant, je rencontre toujours un problème avec virtualenvcar puisque j'ai changé les emplacements de fichiers par défaut anaconda3, python est introuvable.

L'exécutable python situé dans .virtualenvs/env/bin/pythonest introuvable. Dois-je apporter d'autres modifications pour que python fonctionne virtualenvaussi?

rrz0
la source
D'après votre erreur, il semble que vous utilisez toujours bash, mais la solution suggérée est pour zsh(la nouvelle valeur par défaut de Catalina). Essayez conda init bashplutôt.
merv
J'ai eu la même erreur. bashne fonctionne pas non plus.
Kaymal

Réponses:

6

J'ai exactement le même problème et cela fonctionne pour moi:

Après avoir déplacé anaconda de "Éléments déplacés" vers ~/anaconda3, modifiez la première ligne de ~/anaconda3/bin/condafichier de #!/anaconda3/bin/pythonà #!/Users/USERNAME/anaconda3/bin/pythonpour refléter la modification.

Ted Shaowang
la source
1
Cela affecte-t-il les paramètres pip et Jupyter?
rrz0
1
Cela ne semble pas résoudre tous les problèmes liés à anaconda3 et à python. J'obtiens Erreur: impossible d'exécuter le programme "/Users/USER/.virtualenvs/env/bin/python"Aucun fichier ou répertoire de ce type. Lorsque j'archive le Finder, le fichier est effectivement manquant et introuvable.
rrz0
3

Je m'abstiendrai probablement d'utiliser la solution ci-dessus. Ce ~/anaconda3/binrépertoire a beaucoup de runnables (pas seulement condacelui) qui devraient être modifiés de cette manière manuelle. Par exemple, à moins que vous n'effectuiez la même modification, vous ne pouvez pas exécuter non jupyter notebookplus, ni à partir baseni à partir d'autres environnements que vous pourriez avoir.

Mon conseil: essayez d'obtenir un fichier d'exigences pour vos envs virtuels et effectuez une nouvelle installation. Vous pouvez utiliser pipreqspour obtenir les exigences utilisées pour les projets individuels: https://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/

Cristina Morariu
la source
Merci pour la suggestion. Comme vous le dites, le problème persiste virtualenvégalement.
rrz0
3
Veuillez consulter le billet de blog recommandant un outil pour les corriger: anaconda.com/…
msarahan
1

Techniquement, cela réinstalle anaconda, cependant, j'ai restauré tous mes envs de conda donc, j'espère que c'est une solution acceptable!

Voici comment je l'ai fait fonctionner sur Catalina il y a quelques minutes (maintenant avec z-shell): - Vérifié l'existence du répertoire "Relocated Items" sur mon bureau et le répertoire "anaconda3" et son contenu à l'intérieur - Navigué dans le répertoire envs sous "anaconda3" et laissé la fenêtre du Finder ouverte (voir capture d'écran)

entrez la description de l'image ici

PUIS:

  • ouvert un nouveau terminal (z-shell)
  • couru (installé sur / usr / local / anaconda3):

    brasser le tonneau installer anaconda

  • une fois l'installation terminée, j'ai ouvert mon fichier ~ / .zshrc (pour mes alias z-shell) et ajouté la ligne suivante:

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

  • enregistré mon fichier ~ / .zshrc, puis rechargé avec:

    source ~ / .zshrc

  • pour vérifier que la commande conda fonctionne maintenant, j'ai exécuté:

    liste de conda env

  • pour moi, cela montrait un env de base et c'était tout

  • puis ouvrez le Finder vers le nouvel emplacement envs: ouvrez / usr / local / anaconda3 / envs /.

  • J'ai glissé (déplacé) tous mes anciens envs dans le nouveau dossier envs, puis j'ai exécuté:

    liste de conda env

Et tous mes anciens envs sont de retour! :)

  • mis à jour mes chemins interprète / env PyCharm pour refléter les nouveaux emplacements de ces envs (a dû redémarrer PyCharm après, mais maintenant cela fonctionne!)
  • TERMINÉ
Phil S
la source
Merci pour votre suggestion. Est-ce que ça marche virtualenvaussi? J'en ai certains virtualenvsque je ne suis pas en mesure d'utiliser dans Pycharm car je reçois toujours `Erreur: Impossible d'exécuter le programme" /Users/USER/.virtualenvs/baseline_env/bin/python "Aucun fichier ou répertoire de ce type.» Dans le Finder, j'obtiens également"The original item python cannot be found.
rrz0
1
Veuillez consulter le billet de blog recommandant un outil pour réparer plus de connexions rompues: anaconda.com/…
msarahan
1
@ Rrz0 basé sur ce que vous avez écrit, je suppose que le chemin vers virtualenv est faux. C'est hacky, mais si vous pouvez accéder à votre virtualenv, je pense que vous devriez être en mesure de copier le chemin d'accès et de modifier les entrées dans PyCharm (si les virtualenvs sont dans les éléments déplacés, je ne sais pas où vous conseiller de les mettre) - Si vous pouvez accéder à vos anciens virtualenvs, vous pouvez (un par un) les activer à partir du shell et exécuter: pip freeze> requirements_VENV_NAME.txt - dans PyCharm créer de nouveaux virtualenvs - activer chaque nouveau virtualenv et exécuter: pip install - r requirements_VENV_NAME.txt
Phil S
Merci @PhilS, quelque chose dans ce sens a fini par fonctionner.
rrz0
0

Je ne sais pas si cela est considéré comme un commentaire ou au moins une réponse temporaire, mais je m'abstiens de tenter de résoudre tout problème de compatibilité de Catalina avec Anaconda pour l'instant. Voir ce problème GitHub .

Sean Wangnick
la source
0

J'ai le même problème, et cela fonctionne pour moi: Ma solution:

  1. Copiez votre anaconda3 à partir du dossier Éléments déplacés
  2. Coller dans User / YourUserName
  3. Ouvrir le fichier de Conda dans anaconda3 / bin avec l'éditeur et modifier la première ligne #!/anaconda3/bin/pythonà#!/Users/YourUserName/anaconda3/bin/python
  4. Enregistrez-le et exécutez le fichier conda
  5. Terminal ouvert
  6. Lance ça : export PATH=''/Users/YourUserName/anaconda3/bin:$PATH"
  7. Courir conda init zsh
TANK NK
la source
Dois-je apporter d'autres modifications pour que python fonctionne virtualenvaussi, par exemple?
rrz0
0

J'avais rencontré le même problème, et la solution suivante a fonctionné pour moi, et c'est la solution la plus simple:

Au lieu de gâcher la copie du fichier anaconda3 des éléments déplacés dans le répertoire User / USERNAME, mieux serait simplement de réinstaller la dernière version du navigateur anaconda depuis son site officiel: https://www.anaconda.com/distribution/#macos

Pendant l'installation, il vous demandera quelques autorisations qui sont le résultat de nouvelles politiques de sécurité Apple, accordez-les simplement, et cela fonctionne comme il se doit après cette nouvelle installation!

shreyas labhsetwar
la source
0

C'est ce qui a fonctionné pour moi.

Ce sont mes fichiers d'en-tête (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

Courez sudo find /Library -name stdio.hpour voir où se trouve le vôtre.

Fichiers d'en-tête 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

Comme on peut le voir, les SDK sont désormais divisés en MACOSX10.14 et 10.15 contrairement à Mojave.

TLDR

Donc, ce sont mes dossiers SDK sur Catalina:

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

  1. Renommer MacOSX.sdkenMacOSX_orig.sdk
  2. Clic droit sur MacOSX10.14.sdk
  3. Dupliquer
  4. Renommer le dossier en double en MacOSX.sdk

La structure de votre dossier devrait maintenant ressembler à ceci:

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

Comme cela, nous utilisons essentiellement le sdk OSX de la version précédente comme sysroot. J'espère que cela t'aides.

rrz0
la source