pyenv 不使用正确的 python 版本

问题描述

使用 pyenv 2.0.3

当我在一个带有 python 版本文件文件夹中时,python 继续使用 2.7.6 的系统版本。 (不知道为什么是 2.7.6,因为我通过 brew 安装了 3.9.7)。

$ python -V
Python 2.7.16

通过 pyenv 查找

$ pyenv which python
/Users/jaco/.pyenv/versions/Trading/bin/python

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

我有

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

在我的 zshrc 中

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

$ l /Users/jaco/.pyenv/bin
ls: /Users/jaco/.pyenv/bin: No such file or directory

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

解决方法

答案是将垫片放在路径上

# 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
,

假设您运行的是 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

来自pyenv installation docs

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