Lukasz Lukasz - 1 month ago 39
Linux Question

conda command will prompts error

I'm using arch linux and I've installed Anaconda as per the instruction on the Anaconda site. When I'm attempting to run

conda info --envs
I get the following error:

bash: /home/lukasz/anaconda3/bin/conda: /opt/anaconda1anaconda2anaconda3/bin/python: bad interpreter: No such file or directory


I've tryed looking for the directory
/opt/anaconda1anaconda2anaconda3/bin/python:
but it simply doesn't exist.

Furthermore, when I run python from the terminal it runs as normal with the following displayed at the top

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.


for completeness my
.bashrc
file resembles:

#
# ~/.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


I've tried following the Conda command not found and making the the appropriate changes but nothing, I've also attempted to Conda command not found, path is in .bashrc but there really isn't a solution posted.

I would like to try to fix this without having to remove Anaconda and reinstalling it.

Answer

Something must have gone wrong during the installation, I suppose. The bad interpreter means that a script is looking for an interpreter that doesn't exist - as you rightfully pointed out.

The problem is likely to be in the shebang #! statement of your conda script.

From Wikipedia: Under Unix-like operating systems, when a script with a shebang is run as a program, the program loader parses the rest of the script's initial line as an interpreter directive; the specified interpreter program is run instead, passing to it as an argument the path that was initially used when attempting to run the script.

If you run

cat ~/anaconda3/bin/conda

You will probably get the following:

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

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

Changing the first line to point a correct interpreter, i.e., changing it to:

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

Should make the conda command work.

If you are sure that you installed everything properly, then I'd suggest maybe reaching out for support from the anaconda community.