【问题标题】:pip3: bad interpreter: No such file or directorypip3:错误的解释器:没有这样的文件或目录
【发布时间】:2018-07-17 04:02:12
【问题描述】:

我正在尝试使用pip3 命令安装依赖项

当前情景:

Dev$ which python
/Users/Dev/anaconda/bin/python

Dev$ which python3
/usr/local/bin/python3


Dev$ pip --version
pip 10.0.1 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)

Dev$ pip3 --version
-bash: /usr/local/bin/pip3: /usr/local/opt/python3/bin/python3.6: bad 
interpreter: No such file or directory

我不知道为什么我的pip3 命令不起作用。

我尝试过这样的事情:

brew link --overwrite python 

【问题讨论】:

    标签: python python-3.x macos pip


    【解决方案1】:

    你有一大堆不同的 Python 安装,加上至少一个你删除的以前的 Python 安装。

    这种情况正是不再推荐直接运行pippip3 的原因,而是:

    python3 -m pip install whatever
    

    这保证您绝对积极地运行pip,无论python3 是什么意思,而pip3 只是意味着您正在运行pip,与一些 Python 3.x,可以是您安装的任何一个。

    或者,更好的是,使用虚拟环境,这样您就可以依赖 pythonpip 是来自当前活动环境的命令这一事实,甚至不必担心它们在系统范围内的含义。


    但是,如果您想知道自己是如何陷入这种混乱的,以及如何解决它:

    您的 python3 命令可能来自 Homebrew Python(您可以检查;ls -l /usr/local/bin/python3 并查看它是否是指向 /usr/local/Cellar/python 中某些内容的符号链接)。

    您的 pip3 命令来自不存在的 Python 3。很可能,您安装了另一个 Python 3,它覆盖了 Homebrew Python 3 中的 pip3,然后将其卸载,留下了损坏的 pip

    最简单的方法就是rm /usr/local/bin/pip3。然后,假设您希望 Homebrew Python 成为 python3pip3 的默认值,请重做 brew link python 命令。如果它向您显示任何警告或错误,您还有其他问题需要修复。如果不是,/usr/local/bin/pip3 现在应该是 Homebrew 3.6 pipwhich pip3 应该选择 /usr/local/bin/pip3,一切都很好,直到你下次安装另一个 Python 3 并覆盖一堆东西。

    更好的解决方法是选择一种安装 Python 的方式——无论是 Anaconda、Homebrew、python.org 安装程序还是其他方式——并始终如一地使用它。卸载一切,重新安装你真正想要的,永远不要再碰其他的。 (不幸的是,你仍然会被 Apple 的系统 Python 2.7 卡住,但如果你只使用 3.x,那就没关系了。)

    【讨论】:

    • “或者,更好的是,使用虚拟环境” ...即使在使用虚拟环境时我也遇到了这个问题,但您的解决方案解决了这个问题
    • 好答案。据我所知,Xcode Command Line Tools 也提供python3
    • 运行python -m pip install pandas时出现分段错误
    • 是否有 PEP 引用“不再推荐直接使用 pip”?
    • 可以将python3 -m pip ..这一行改成更详细的python3版本如python3.10 -m pip..
    【解决方案2】:

    您可以尝试更改 pip 的 python 版本
    vim /path/to/pip
    然后用所需的 Python 版本更改注释行(第一行)。

    【讨论】:

    • 这确实有效,如果它本身指向错误,您所要做的就是更改 python3 版本。
    • 太棒了!这对我也有用。我用vim打开了pip和pip3文件,不知怎的,以前删除的python位置在那里,我把它改成了正确的路径,它工作了!谢谢。
    • 为我工作,我从 XCode 到 Python 的路径错误,这个技巧解决了我的问题。要列出可以找到 pip 的区域,可以使用“echo $PATH”命令。
    • answer with most votesbrew link python 相比,这似乎是一个hack,这里有更多关于brew cmd 的信息。
    • @Timo,无论是否破解,这是唯一对我有用的东西。正如公认的答案所说的那样,python -m pip install whatever 是要走的路,我将继续使用它。
    【解决方案3】:

    我也有同样的问题。

    对我来说,venv/bin/pip 中的 python 路径是错误的。

    1.打开点数:

    gedit 路径/到/pip

    #!/home/saeed/project-master/venv/bin/python3.9
    # -*- coding: utf-8 -*-
    import re
    import sys
    

    2。更正pip文件第一行的python路径:

    #!/home/saeed/project/venv/bin/python3.9
    # -*- coding: utf-8 -*-
    import re
    import sys
    

    【讨论】:

    • 谢谢!这解决了我的问题。我想知道为什么它突然停止工作。原来我改了项目的目录名,virtualenv里面的pip文件有一个硬编码的路径。
    【解决方案4】:

    我会做一个补充,也许它可以帮助某人。

    我现在安装了python3.9,但我收到了类似 TS 报告的错误消息:

    /home/username/.local/bin/pip: bad interpreter: /usr/bin/python3.6: No such file or directory
    

    我发现~/.local/bin 目录中存在pip3.6pip 文件,并带有以下shebang(注意指定了明确的Python 版本):

    #!/usr/bin/python3.6

    但由于我的系统上没有 3.6 版本,所以调用

    $ pip

    显然会导致此错误。将 3.6 替换为 3.9 即可解决此问题。

    【讨论】:

      【解决方案5】:

      请检查你当前环境下的python版本,确保是python3

      【讨论】:

        【解决方案6】:
        sudo apt install python[2|3]-pip
        
        pip2 install ws4py==0.3.2
        

        我也遇到过同样的情况,在上面之后,我的程序正常工作, Ubuntu 16.04.6 amd64

        【讨论】:

          【解决方案7】:

          解决方案(apt update && topgrade)

          【讨论】:

          • 请阅读How to Answer。如果有更多的上下文,这个答案会更有用。请注意,这个问题是关于 macOS,而不是 Debian 衍生产品。
          猜你喜欢
          • 2017-08-15
          • 1970-01-01
          • 2012-03-07
          • 1970-01-01
          • 1970-01-01
          • 2017-01-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多