web-dev-qa-db-fra.com

La commande conda affichera une erreur: "Mauvais interprète: aucun fichier ou répertoire de ce type"

J'utilise Arch Linux et j'ai installé Anaconda selon les instructions sur le site Anaconda. Lorsque j'essaie d'exécuter conda info --envs J'obtiens l'erreur suivante:

bash:/home/lukasz/anaconda3/bin/conda:/opt/anaconda1anaconda2anaconda3/bin/python: mauvais interpréteur: aucun fichier ou répertoire de ce type

J'ai essayé de chercher le répertoire /opt/anaconda1anaconda2anaconda3/bin/python: mais cela n'existe tout simplement pas.

De plus, lorsque j'exécute python à partir du terminal, il fonctionne normalement avec ce qui suit affiché en haut

Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.

pour être complet, mon .bashrc le fichier ressemble à:

#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '

# added by Anaconda3 4.0.0 installer
export PATH="/home/lukasz/anaconda3/bin:$PATH"

# python startup for up keys
export PYTHONSTARTUP=$HOME/.pythonstartup

J'ai essayé de suivre commande Conda non trouvée et de faire les changements appropriés mais rien, j'ai également essayé de commande Conda non trouvée, le chemin est dans .bashrc mais il n'y a vraiment pas de solution affichée.

Je voudrais essayer de résoudre ce problème sans avoir à supprimer Anaconda et à le réinstaller.

24
Lukasz

Quelque chose a dû mal tourner lors de l'installation, je suppose. Le mauvais interprète signifie qu'un script recherche un interprète qui n'existe pas - comme vous l'avez souligné à juste titre.

Le problème est probablement lié au Shebang #! déclaration de votre script conda.

De Wikipedia : Sous les systèmes d'exploitation de type Unix, lorsqu'un script avec un Shebang est exécuté en tant que programme, le chargeur de programme analyse le reste de la ligne initiale du script comme une directive interprète; le programme d'interprétation spécifié est exécuté à la place, en lui passant comme argument le chemin qui a été initialement utilisé lors de la tentative d'exécution du script.

Si vous courez

cat ~/anaconda3/bin/conda

Vous obtiendrez probablement ce qui suit:

#!/opt/anaconda1anaconda2anaconda3/bin/python
if __name__ == '__main__':
    import sys
    import conda.cli

    sys.exit(conda.cli.main())

Changer la première ligne pour pointer un interpréteur correct, c'est-à-dire la changer en:

#!/home/lukasz/anaconda3/bin/python

Devrait faire fonctionner la commande conda.

Si vous êtes sûr d'avoir tout installé correctement, je vous suggère de contacter support de la communauté anaconda.

39
dangom

Comme la réponse ci-dessus, ce problème peut être résolu en modifiant le

#!/opt/anaconda1anaconda2anaconda3/bin/python

à

#!/opt/anaconda3/bin/python

Cependant, dès que vous faites la prochaine installation, par ex. "conda install [...]" ceci sera de nouveau changé en anaconda1anaconda2anaconda3, pour quelque raison que ce soit.

Vous pouvez également réaliser certains avertissements et erreurs d'installation qui sont très probablement liés à ce problème. Si vous voulez vous débarrasser de ce problème, vous devez résoudre ces avertissements et erreurs. Mon hypothèse la plus forte est qu'il manque des droits d'administrateur à l'origine de ce problème, lorsque vous essayez d'installer certains packages conda la première fois.

2
Rockbar