Python:如何修复 "pyenv: bash: command not found"
Python: How to fix "pyenv: bash: command not found"
我使用 pyenv
来管理我的 Python 环境,我在 运行 bash
.
时得到以下信息
$ bash
pyenv: bash: command not found
我试图解决 pipenv shell
因上述错误而失败的原因,这就是我发现 bash
无法正常工作的原因。我尝试通过 brew
和 运行 pyenv rehash
更新 pipenv
以重新生成垫片。 bash
肯定存在。
$ which bash
/bin/bash
我预计如果pyenv
没有找到命令,将搜索PATH
环境变量指定的后续路径。有趣的是,如果我执行一些不存在的命令,我不会收到 pyenv
错误。
$ someboguscommand
-bash: someboguscommand: command not found
这向我表明 pyenv
在这种情况下甚至没有搜索匹配的命令,并且搜索了 PATH
中的后续路径,因此必须对 [= 进行一些特殊处理16=].
问题是我的 .bashrc
中有以下行,它在 运行 bash
时被调用。这是我不再需要的一行:
. virtualenvwrapper.sh
这又调用了 pyenv 的 virtualwrapper shim:
$ which virtualenvwrapper.sh
/Users/greg/.pyenv/shims/virtualenvwrapper.sh
这就是导致失败的原因。我能够通过 运行 带有 bash
:
的调试跟踪来识别这一点
$ bash -x
+ . virtualenvwrapper.sh
++ set -e
++ '[' -n '' ']'
++ program=bash
++ [[ bash = \p\y\t\h\o\n* ]]
++ export PYENV_ROOT=/Users/greg/.pyenv
++ PYENV_ROOT=/Users/greg/.pyenv
++ exec /usr/local/Cellar/pyenv/1.2.13_1/libexec/pyenv exec bash
pyenv: bash: command not found
感谢 "that other guy"、Charles Duffy 和 rje 的有用评论!
我在使用 Pyenv[=48] 在 CentOS 上设置 Python 3.8 时遇到了这个问题=].
当我 运行 pyenv install 3.8.2
:
时,我 运行 陷入以下错误
pyenv: bash: command not found
我是这样解决的:
问题是 pyenv 没有添加到我的配置文件的加载路径中。
我所要做的就是执行以下操作:
在我的用户的主目录中打开 .bashrc
文件:
sudo nano ~/.bashrc
接下来,在文件底部添加以下内容并保存:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
最后,重新启动您的终端或 运行 下面的命令以将新添加的路径加载到您当前的 shell/terminal 会话中:
exec "$SHELL"
现在,当您 运行 命令 pyenv install 3.8.2
时,它应该可以正常工作。
资源:Managing Multiple Python Versions With pyenv
就这些了。
希望对您有所帮助
我使用 pyenv
来管理我的 Python 环境,我在 运行 bash
.
$ bash
pyenv: bash: command not found
我试图解决 pipenv shell
因上述错误而失败的原因,这就是我发现 bash
无法正常工作的原因。我尝试通过 brew
和 运行 pyenv rehash
更新 pipenv
以重新生成垫片。 bash
肯定存在。
$ which bash
/bin/bash
我预计如果pyenv
没有找到命令,将搜索PATH
环境变量指定的后续路径。有趣的是,如果我执行一些不存在的命令,我不会收到 pyenv
错误。
$ someboguscommand
-bash: someboguscommand: command not found
这向我表明 pyenv
在这种情况下甚至没有搜索匹配的命令,并且搜索了 PATH
中的后续路径,因此必须对 [= 进行一些特殊处理16=].
问题是我的 .bashrc
中有以下行,它在 运行 bash
时被调用。这是我不再需要的一行:
. virtualenvwrapper.sh
这又调用了 pyenv 的 virtualwrapper shim:
$ which virtualenvwrapper.sh
/Users/greg/.pyenv/shims/virtualenvwrapper.sh
这就是导致失败的原因。我能够通过 运行 带有 bash
:
$ bash -x
+ . virtualenvwrapper.sh
++ set -e
++ '[' -n '' ']'
++ program=bash
++ [[ bash = \p\y\t\h\o\n* ]]
++ export PYENV_ROOT=/Users/greg/.pyenv
++ PYENV_ROOT=/Users/greg/.pyenv
++ exec /usr/local/Cellar/pyenv/1.2.13_1/libexec/pyenv exec bash
pyenv: bash: command not found
感谢 "that other guy"、Charles Duffy 和 rje 的有用评论!
我在使用 Pyenv[=48] 在 CentOS 上设置 Python 3.8 时遇到了这个问题=].
当我 运行 pyenv install 3.8.2
:
pyenv: bash: command not found
我是这样解决的:
问题是 pyenv 没有添加到我的配置文件的加载路径中。
我所要做的就是执行以下操作:
在我的用户的主目录中打开 .bashrc
文件:
sudo nano ~/.bashrc
接下来,在文件底部添加以下内容并保存:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
最后,重新启动您的终端或 运行 下面的命令以将新添加的路径加载到您当前的 shell/terminal 会话中:
exec "$SHELL"
现在,当您 运行 命令 pyenv install 3.8.2
时,它应该可以正常工作。
资源:Managing Multiple Python Versions With pyenv
就这些了。
希望对您有所帮助