pyenv 本地/全局不适用于 catalina

Ste*_*hen 7 python macos homebrew pyenv

我有一台新的 MacBook,里面所有的东西都是全新安装的,我升级到 macOS Catalina。我安装了自制软件,然后安装了 pyenv,并使用 pyenv 安装了 Python 3.8.0。所有这些东西似乎都能正常工作。

但是,既没有pyenv local也没有pyenv global似乎生效。以下是我所看到的所有细节:

thewizard@Special-MacBook-Pro ~ % pyenv versions
   system
 * 3.8.0 (set by /Usersthewizard/.python-version)
thewizard@Special-MacBook-Pro ~ % python --version
 Python 2.7.16
thewizard@Special-MacBook-Pro ~ % pyenv global 3.8.0
thewizard@Special-MacBook-Pro ~ % python --version
 Python 2.7.16
thewizard@Special-MacBook-Pro ~ % pyenv local 3.8.0
thewizard@Special-MacBook-Pro ~ % python --version
 Python 2.7.16
thewizard@Special-MacBook-Pro ~ % echo $PATH
 /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/thewizard/.pyenv/bin
thewizard@Special-MacBook-Pro ~ % cat ~/.zshenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
   eval "$(pyenv init -)"
fi
Run Code Online (Sandbox Code Playgroud)

顺便说一句/bin,我的 .pyenv 中没有,我只根据其他一些说明添加了这些命令,但我打算将其删除,因为我认为这是错误的:

thewizard@Special-MacBook-Pro ~ % ls -al ~/.pyenv 
total 8
drwxr-xr-x   5 thewizard  staff  160 Nov  2 15:03 .
drwxr-xr-x+ 22 thewizard  staff  704 Nov  2 15:36 ..
drwxr-xr-x  22 thewizard  staff  704 Nov  2 15:03 shims
-rw-r--r--   1 thewizard  staff    6 Nov  2 15:36 version
drwxr-xr-x   3 thewizard  staff   96 Nov  2 15:01 versions
Run Code Online (Sandbox Code Playgroud)

值得注意的是,Catalina 从 bash 迁移到 zsh,不确定这在这里是否相关。

Mal*_*lte 7

我将以下内容添加到我的 ~/.zprofile 中并使其正常工作。

export PYENV_ROOT="$HOME/.pyenv/versions/3.7.3"
export PATH="$PYENV_ROOT/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)


mar*_*tin 5

如果您正在使用并遇到相同的问题,您可以pyenv将以pipenv下行添加到您的.zshrc.zprofile文件中:

export PYENV_ROOT="$HOME/.pyenv/shims"
export PATH="$PYENV_ROOT:$PATH"
export PIPENV_PYTHON="$PYENV_ROOT/python"
Run Code Online (Sandbox Code Playgroud)

如果您安装了多个 Python 版本,引用pyenv/shims文件夹有助于使其更通用,并允许您轻松地在不同的 Python 版本之间切换。

pipenv然后将始终引用当前设置为全局的 Python 版本pyenv