conda command will prompt error: "Bad Interpreter: No such file or directory"

Question:

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 tried 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 this and making the the appropriate changes but nothing, I’ve also attempted to do this but there really isn’t a solution posted.

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

Asked By: Lukasz

||

Answers:

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.

Answered By: dangom

As the response above, this issue can be solved by changing the

#!/opt/anaconda1anaconda2anaconda3/bin/python

to

#!/opt/anaconda3/bin/python

However, as soon as you do the next installation, e.g. “conda install […]” this will be changed again to anaconda1anaconda2anaconda3, for whatever reasons.

You might also realize some installation warnings and errors which are very likely to be related to this problem. If you want to get rid of this problem, you have to solve this warnings and errors. My strongest assumption is that there are missing administrator rights causing this problem, when you attempt to installs some conda packages the first time.

Answered By: Rockbar

I encountered the same error while trying

conda

The error you should interpret as follows:

bash: "path_to_file_with_error": "path_to_file_it_points_to": 
bad interpreter: No such file or directory

How to fix
Type in terminal

nano "path_to_file_with_error"

Change first line of the file to correct path of the python (in my case it was in miniconda/bin)

Answered By: makewithplus

When you change the path to the interpreter conda will not be activated, so by following any of the previous answers you will end up in dead end.

you get the following

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.

So to solve this renaming path issue you need to:
you can use any text editor:

nano ~/anaconda3/etc/profile.d/conda.sh

change the CONDA_EXE and CONDA_PYTHON_EXE paths to the correct path
example:

      export 
      CONDA_EXE='/home/yourusername/anaconda3/bin/conda'
      export _CE_M=''
      export _CE_CONDA=''
      export CONDA_PYTHON_EXE='/home/yourusername/anaconda3/bin/python'

then last step do:

source ~/anaconda3/etc/profile.d/conda.sh

To test your conda

Try:

conda activate 
conda deactivate

to make this change permanent to all terminals
please add this line to ~/.bashrc

source ~/anaconda3/etc/profile.d/conda.sh
Answered By: Karim Sherif

For centos/Rocky Linux 8 OS:
conda is a 32 bit application but centos OS is 64 bit,
you need to install package below:
yum install glibc.i686

reference:
https://forums.centos.org/viewtopic.php?t=14169

Answered By: JamesYen Yen

If somebody runs into this problem and none of the above solutions works, it could be that on some update process the conda executable (which is a python script) was replaced with an identical-looking script with one key difference, it contains windows line endings.
This results in that executing the script via bash e.g.:

<some_path>/conda/bin/conda

will result in the error, but executing directly via python works

<some_path>/conda/bin/python <some_path>/conda/bin/conda

Can be fixed by dos2unix

dos2unix <some_path>/conda/bin/conda

or just move the file away and move it back.

Answered By: Blonck
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.