【问题标题】:Pyenv not showing as a commandPyenv 未显示为命令
【发布时间】:2021-05-13 10:42:10
【问题描述】:

当我写 pyenv 时,它说

Command 'pyenv' not found, did you mean:
command 'p7env' from deb libnss3-tools
Try: sudo apt install <deb name>

我知道这很常见,并且与路径有关。我已经尝试了所有不同文件中的所有内容,例如 bashrc、bash_profile、zshrc 等。我目前拥有的是我的“bashrc”文件:

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

当我写 bash 然后重新加载终端时它可以工作,但我无法更改 python 版本。

我使用的是 Linux Debian 发行版和 pyenv 版本 1.2.27

【问题讨论】:

  • 你想在终端中运行pyenvecho $PATH的结果是什么?
  • 这是结果:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games: /usr/游戏
  • 嗨,欢迎来到 SO。您应该使用tour,阅读How to Askminimal reproducible example。您的问题与代码无关,因此有点超出 SO 的范围,尽管这里有大量的 linux 用户社区。我会这样做:which pyenv,它应该不会为您返回任何内容。然后sudo find / -name pyenv -print。这将向您显示 pyenv 可执行文件在您的计算机上的位置。然后将该目录添加到您的 PATH 变量中,在您的 .bashrc 中。不要忘记 bashrc 前面的点。现在它可能根本没有安装(就像我的一样),这需要你安装它。
  • 我知道这对 OP 没有帮助,但这里的每个人都应该知道 pyenv 最近一直在更新 init 系统。详情请见this PR
  • "但我无法更改 python 版本。"怎么改?请更新您的问题。

标签: python bash debian pyenv


【解决方案1】:

Bash sources ~/.bashrc only for interactive non-login shells。因此,在交互式登录 shell 中,在您键入 bash 以打开交互式非登录 shell 之前,您的 ~/.bashrc 文件还没有被获取。您可以通过将以下内容添加到您的 ~/.bash_profile 文件来解决此问题:

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

【讨论】:

    【解决方案2】:

    对我来说,它是这样工作的(在 .bashrc 的末尾):

    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    eval "$(pyenv init --path)"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2021-01-21
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2021-08-27
      相关资源
      最近更新 更多