zsh:/ usr / local / bin / pipenv:错误的解释器:/usr/local/opt/python/bin/python3.7:没有这样的文件或目录

问题描述

我最近从bash切换到zsh。自从切换以来,我还没有使用过pipenv。现在,当我运行任何pipenv命令时,都会出现以下错误

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

我将pyenv用于Python依赖项管理:

$ which python
/Users/ryan.payne/.pyenv/shims/python

我的认python版本是3.7.3:

$ pyenv versions
  system
  2.7.16
  3.6.8
* 3.7.3 (set by /Users/ryan.payne/.pyenv/version)

似乎pipenv没有使用我的pyenv版本的Python。如何使pipenv重新工作?

解决方法

您不需要卸载任何东西。只需在 /usr/local/bin 处更改解释器,并在 pyenv 中方便地使用当前的 python 路径:

type python3

复制路径

vi /usr/local/bin/pipenv

它看起来像这样:

enter image description here

一旦更改,您可能需要再次下载 pipenv。别担心,你的环境很好。

pip install pipenv

在你的环境中玩

,

我在awscli中遇到了同样的错误。解决方案是通过自制程序安装python@3.7,然后cp将该安装安装到预期的目录awscli中。

brew install python@3.7
cp -r /usr/local/opt/python@3.7/bin/python3.7 /usr/local/opt/python/bin/python3.7

,

我通过卸载并重新安装pipenv和pyenv解决了此问题。我跟随https://stackoverflow.com/a/51797298/11809808卸载了pyenv。

,

在终端运行:

brew install python3 && cp /usr/local/bin/python3 /usr/local/bin/python