【问题标题】:conda command will prompt error: "Bad Interpreter: No such file or directory"conda 命令会提示错误:“Bad Interpreter: No such file or directory”
【发布时间】:2017-02-14 12:29:13
【问题描述】:

我使用的是 Arch linux,并且按照 Anaconda 网站上的说明安装了 Anaconda。当我尝试运行 conda info --envs 时,出现以下错误:

bash: /home/lukasz/anaconda3/bin/conda: /opt/anaconda1anaconda2anaconda3/bin/python:错误的解释器:没有这样的 文件或目录

我尝试查找目录/opt/anaconda1anaconda2anaconda3/bin/python:,但它根本不存在。

此外,当我从终端运行 python 时,它正常运行,顶部显示以下内容

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.

为了完整起见,我的 .bashrc 文件类似于:

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

我已尝试关注this 并进行适当的更改但没有,我也尝试过this 但确实没有发布解决方案。

我想尝试解决此问题,而无需删除 Anaconda 并重新安装。

【问题讨论】:

    标签: python linux anaconda


    【解决方案1】:

    我想,在安装过程中一定出了什么问题。 错误的解释器意味着脚本正在寻找不存在的解释器 - 正如您正确指出的那样。

    问题可能出在您的 conda 脚本的 shebang #! 语句中。

    From Wikipedia: 在类 Unix 操作系统下,当带有 shebang 的脚本作为程序运行时,程序加载器会解析其余部分 脚本的初始行作为解释器指令;这 而是运行指定的解释器程序,并将其作为 参数尝试运行时最初使用的路径 脚本。

    如果你跑

    cat ~/anaconda3/bin/conda
    

    您可能会得到以下信息:

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

    更改第一行以指向正确的解释器,即将其更改为:

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

    应该使conda 命令起作用。

    如果您确定您已正确安装所有内容,那么我建议您联系support from the anaconda community.

    【讨论】:

    • 这是我运行cat ~/anaconda3/bin/conda 时得到的确切输出。我正在尝试更改第一行以指向正确的解释器,但我不确定如何实现。
    • 这个方案同样适用于ipython,需要和cat~/anaconda3/bin/ipython做同样的事情。当我将我的 python 文件夹移动到其他地方时,问题发生在我身上。
    • 这是一个非常简洁的解决方案。谢谢。
    • anaconda 社区链接对您仍然有效吗?
    • 不,支持链接已失效,现在应该去哪里并不明显。我会说也许:docs.anaconda.com/anacondaorg。顺便说一句:我刚刚使用cd /sudo ln -s /home/user/anaconda3 加入了目录的假定位置和真实位置。
    【解决方案2】:

    如果有人遇到这个问题并且上述解决方案都不起作用,则可能是在某些更新过程中,conda 可执行文件(它是一个 python 脚本)被替换为一个外观相同的脚本,但有一个关键区别,它包含windows 行尾。 这导致通过 bash 执行脚本,例如:

    <some_path>/conda/bin/conda
    

    会报错,但是直接通过python执行就可以了

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

    可以通过dos2unix修复

    dos2unix <some_path>/conda/bin/conda
    

    或者只是将文件移开并移回。

    【讨论】:

      【解决方案3】:

      对于 centos 8 操作系统: conda 是 32 位应用程序,但 centos 操作系统是 64 位, 您需要安装以下软件包: yum install glibc.i686

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

      【讨论】:

        【解决方案4】:

        当您更改解释器的路径时,conda 将不会被激活,因此按照之前的任何答案,您最终都会陷入死胡同。

        你会得到以下内容

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

        因此,要解决此重命名路径问题,您需要: 您可以使用任何文本编辑器:

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

        将 CONDA_EXE 和 CONDA_PYTHON_EXE 路径更改为正确的路径 示例:

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

        然后最后一步做:

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

        测试你的 conda

        试试:

        conda activate 
        conda deactivate
        

        使此更改永久适用于所有终端 请将此行添加到 ~/.bashrc

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

        【讨论】:

          【解决方案5】:

          我在尝试时遇到了同样的错误

          conda
          

          您应该将错误解释如下:

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

          如何解决 输入终端

          nano "path_to_file_with_error"
          

          将文件的第一行更改为正确的 python 路径(在我的情况下,它在 miniconda/bin 中)

          【讨论】:

            【解决方案6】:

            如上面的回答,这个问题可以通过改变

            #!/opt/anaconda1anaconda2anaconda3/bin/python
            

            #!/opt/anaconda3/bin/python
            

            但是,一旦您进行下一次安装,例如“conda install [...]”无论出于何种原因,这将再次更改为 anaconda1anaconda2anaconda3。

            您可能还会意识到一些安装警告和错误很可能与此问题有关。如果你想摆脱这个问题,你必须解决这个警告和错误。我最强烈的假设是,当您第一次尝试安装某些 conda 软件包时,缺少管理员权限会导致此问题。

            【讨论】:

            • 它应该指向anaconda的安装路径,如果你在/opt/目录下就是这种情况
            猜你喜欢
            • 2018-06-07
            • 1970-01-01
            • 1970-01-01
            • 2023-04-03
            • 2016-11-01
            • 1970-01-01
            • 2018-09-30
            • 2021-10-05
            • 2020-03-19
            相关资源
            最近更新 更多