【发布时间】:2020-02-28 15:58:15
【问题描述】:
我有一台全新的 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
顺便说一句,我的 .pyenv 中没有 /bin,我只是根据其他说明添加了这些命令,但我打算删除它,因为我认为它是错误的:
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
值得注意的是,Catalina 从 bash 迁移到 zsh,不确定这是否与此处相关。
【问题讨论】:
-
查看您的
$PATH时,似乎系统目录/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin都优先于您的pyenv 目录。如果您的系统在/usr/local/bin中有 Python 2.7,那么在这种情况下运行python将使用 Python 2.7。可以用export PATH="/Users/thewizard/.pyenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"手动设置路径然后重试吗? -
我怀疑您在
.zshenv之后获取了另一个 dotenv 文件,它会覆盖您的路径。你的.zshrc会覆盖$PATH吗? -
@Pierre 是的,我可以做到这一点,你可能会做一些事情——但正如我提到的,我的 .pyenv 中没有 /bin,所以我认为这可能是徒劳的。我看到的唯一 bin 在
~/.pyenv/versions/3.8.0/中,至于.zshrc该文件不存在。我的主目录中没有其他zsh文件,实际上.zshenv是我自己制作的文件。 -
我不确定这是否符合 StackOverflow 的精神,但您是否愿意使用 official pyenv installer 而不是 Brew 重新安装 pyenv?不久前我写了一个tutorial,包含所有步骤。
-
谢谢,我试试看!
标签: python macos homebrew pyenv