【问题标题】:How to use pipenv on mac?如何在 mac 上使用 pipenv?
【发布时间】:2021-08-16 09:19:54
【问题描述】:

通过 pip(pip install pipenv) 安装时,在 zsh shell 上找不到命令pipenv

如果通过brew安装:brew install pipenv,然后运行pipenv shell,报错

Loading .env environment variables...
Launching subshell in virtual environment...
Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/bin/pipenv", line 8, in <module>
    sys.exit(cli())
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/vendor/click/decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/vendor/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/cli/command.py", line 429, in shell
    do_shell(
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/core.py", line 2387, in do_shell
    shell.fork_compat(*fork_args)
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/shells.py", line 106, in fork_compat
    c = pexpect.spawn(self.cmd, ["-i"], dimensions=(dims.lines, dims.columns))
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/vendor/pexpect/pty_spawn.py", line 205, in __init__
    self._spawn(command, args, preexec_fn, dimensions)
  File "/usr/local/Cellar/pipenv/2020.11.15/libexec/lib/python3.9/site-packages/pipenv/vendor/pexpect/pty_spawn.py", line 276, in _spawn
    raise ExceptionPexpect('The command was not found or was not ' +
pipenv.vendor.pexpect.exceptions.ExceptionPexpect: The command was not found or was not executable: /use/bin/zsh.

没有命名/use/bin/zsh 的路径。为什么不稳定?

shell路径是

echo $SHELL
/bin/zsh

【问题讨论】:

  • 你确定它是 /use,带有一个 e,而不是 /usr,带有一个 r? /usr/bin/zsh 是一个比较合理的地方来寻找 zsh(但显然不是在 Mac 上),但 /use/bin/zsh 只是个疯子。
  • @TurePålsson 是的,我添加了完整的错误消息。
  • @Miantian :所以显然某些脚本中有错字。搜索/use/bin/ 的书写位置,并使用您的文本编辑器修复此问题。
  • @user1934428 当我运行ls /use/bin/ 时,得到"/use/bin/": No such file or directory (os error 2)。没有这个目录。
  • 当然。你期待什么???

标签: python macos zsh pipenv pipenv-install


【解决方案1】:

你问了两个问题,真的。我将在下面的单独部分中回答每个问题:

如何解决该错误

Loading .env environment variables...
...
The command was not found or was not executable: /use/bin/zsh.

看起来像in your .env file,你有PIPENV_SHELL=/use/bin/zsh。这是不正确的。相反,它应该是

PIPENV_SHELL=/bin/zsh

甚至干脆

PIPENV_SHELL=zsh

或者您也可以将其删除。然后pipenv shell 将使用与您调用它时相同的 shell。

如何在macOS上正确安装pipenv

在 macOS 上安装 pipenv 的正确方法有点复杂,但如果您不想在升级 Python 版本时遇到问题,这是唯一的方法:

  1. 撤消到目前为止所做的操作:
    % pip uninstall pipenv
    % brew uninstall pipenv
    
  2. 将以下内容添加到您的 .zshrc 文件中:
    eval "$( brew shellenv )"
    export PYENV_VERSION=3.9.5  # Set your preferred Python version.
    export PYENV_ROOT=~/.pyenv
    export PIPX_BIN_DIR=~/.local/bin
    export -U PATH path         # -U eliminates duplicates
    path=( 
        $PIPX_BIN_DIR
        $PYENV_ROOT/{bin,shims} 
        $path
    )
    
  3. 打开一个新的终端窗口(使上述更改生效)并执行以下操作:
    % brew install pyenv
    % pyenv install $PYENV_VERSION # Install your preferred Python.
    % pyenv global $PYENV_VERSION  # Make it your default Python.
    % pip install -U pip           # Update pip.
    % pip install -U --user pipx   # Install pipx into ~/.local/bin
    % pipx install pipenv          # pipx is like brew but for Python.
    
  4. 将以下内容添加到您的 .zshrc 文件中:
    eval "$( pyenv init - )"
    eval "$( pip completion --zsh )"
    eval "$( register-python-argcomplete pipx )"
    eval "$( pipenv --completion )"
    
  5. 重启你的shell(通过输入exec zsh或打开一个新的终端窗口)以使上述生效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-03
    • 2023-01-22
    • 2023-01-08
    • 2020-11-18
    • 2015-06-25
    • 1970-01-01
    • 2018-11-29
    相关资源
    最近更新 更多