/usr/local/bin/pip:坏的解释器:/usr/local/opt/python/bin/python3.7

9

在尝试使用pipenv后,我的Python安装和各种包出现了问题(显然没有成功)。

$ which Python
/usr/bin/Python

$ which python3.8
/usr/local/bin/python3.8

然后,我运行任何不是直接Python命令的命令都会引发错误:bad interpreter error。

$ pip
zsh: /usr/local/bin/pip: bad interpreter: /usr/local/opt/python/bin/python3.7: no such file or directory

$ django-admin
zsh: /usr/local/bin/django-admin: bad interpreter: /usr/local/opt/python/bin/python3.7: no such file or directory

我不完全确定原因,所以我很难解决它。但基本上,我运行任何涉及Python包的命令都会抛出同样的错误。


与其深入探讨“pip”或“django-admin”如何安装,不妨强烈推荐使用虚拟环境来进行所有操作。 - chepner
这就是我开始使用pipenv(通过homebrew安装)的初衷,但现在我陷入了这种情况。pipenv仍然完美地工作,只是想解决这个问题以防万一。 - Fenwick17
which -a 开始查找您可能安装的 所有 Python 版本,并考虑删除(如果可能,请使用原始包装工具)未与您的操作系统一起安装的版本。 - chepner
这可能会很混乱;我的电脑已经超过十年没有进行过新的操作系统安装了,我使用的是macOS,并且在这段时间内我可能使用了3或4种不同的方法安装了各种版本的Python。我正在慢慢地将其收敛为仅有由操作系统提供的安装加上一个Nix安装,但偶尔仍会出现意外情况。 - chepner
2个回答

9

按照以下方式安装 pip

首先下载 get-pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

然后安装pip

python3 get-pip.py

检查 pip 的安装:

$pip -V
pip 20.2.2 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)

1
在所有的方法中,这个方法很有效,感谢@arilwan。 - AZ123

1

解决pip问题的一种方法是将pip与特定的Python版本链接起来。 比如说您想要使用pip安装GeoPandas。在这个例子中,您可以使用以下命令将特定的Python版本与pip链接:

python3.8 -m pip install geopandas

当然,这只适用于您已安装python3.8!这应该可以克服坏的解释器消息,而无需更改任何zsh或bash_profile文件。
以下是进一步解释的链接:

https://snarky.ca/why-you-should-use-python-m-pip/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接