pyenv 未使用正确的 python 版本

Tjo*_*rie 8 python pyenv pyenv-virtualenv

使用 pyenv 2.0.3

当我位于包含 python-version 文件的文件夹中时,python 继续使用系统版本 2.7.6。(不知道为什么是2.7.6,因为我通过brew安装了3.9.7)。

$ python -V
Python 2.7.16
Run Code Online (Sandbox Code Playgroud)

通过 pyenv 查找给出

$ pyenv which python
/Users/jaco/.pyenv/versions/trading/bin/python
Run Code Online (Sandbox Code Playgroud)

激活它已经表明它已激活。

我有

# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Run Code Online (Sandbox Code Playgroud)

在我的 zshrc 中

好像也没有pyenv的bin文件夹?这是 v2 上的新功能吗?

$ l /Users/jaco/.pyenv/bin
ls: /Users/jaco/.pyenv/bin: No such file or directory
Run Code Online (Sandbox Code Playgroud)

同样设置pyenv global 3.9.1不起作用,它保持2.7

Tjo*_*rie 17

答案是将垫片放在路径上

# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/shims:$PATH"
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
#if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
Run Code Online (Sandbox Code Playgroud)


小智 9

假设您正在运行 MacOS 并通过 Homebrew 安装pyenv,您需要执行以下操作:

# Adjust the session-wide environment for your account.
echo 'eval "$(pyenv init --path)"' >> ~/.zprofile

# Enable autocompletion and all subcommands
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

来自pyenv 安装文档

MacOS 注意:如果您使用 Homebrew 安装了 Pyenv,则无需添加 PYENV_ROOT= 和 PATH= 行。如果您的 shell 不使用 ~/.profile,您也不需要将命令添加到 ~/.profile 中。