pyenv本地/全局不适用于catalina

时间:2019-11-02 19:46:01

标签: python macos homebrew pyenv

我有一台新的MacBook,其中包含我升级到macOS Catalina的所有内容的最新安装。我先安装了自制软件,然后安装了pyenv,并使用pyenv安装了Python 3.8.0。所有这些事情似乎都能正常工作。

但是,pyenv localpyenv 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,不确定在这里是否有意义。

5 个答案:

答案 0 :(得分:2)

如果您将pyenvpipenv一起使用,并遇到相同的问题,则可以将以下行添加到.zshrc.zprofile文件中:

export PYENV_ROOT="$HOME/.pyenv/shims"
export PATH="$PYENV_ROOT:$PATH"
export PIPENV_PYTHON="$PYENV_ROOT/python"

引用pyenv的{​​{1}}文件夹有助于使其更通用,并且如果您安装了多个Python版本,则可以方便地在不同的Python版本之间进行切换。

/shims将始终引用pipenv当前设置为全局的Python版本。

答案 1 :(得分:0)

我在〜/ .zprofile中添加了以下内容并使其正常工作。

export PYENV_ROOT="$HOME/.pyenv/versions/3.7.3"
export PATH="$PYENV_ROOT/bin:$PATH"

答案 2 :(得分:0)

catalina(通常是OS X)使用/etc/zprofile来设置$PATH,要先于本地点文件中指定的内容。

它使用path_helper实用程序指定$PATH,我怀疑这将覆盖本地dotfile中的填充垫片。我发现获得我的首选行为的最简单方法是在/etc/zprofile中注释掉以下几行。

# if [ -x /usr/libexec/path_helper ]; then
#   eval `/usr/libexec/path_helper -s`
# fi

有一个选项,我打算探索使用$GLOBAL_RCS中概述的未设置的man zhsoptions,但是全局RC文件中还有其他有用的东西,因此这看起来像太大的锤子。 /etc/zprofile仅会影响交互式外壳,因此注释掉这些行并在本地点文件中进行显式$PATH管理似乎是解决此问题的侵入性最低的方法。

答案 3 :(得分:0)

检查帐户根目录上是否存在任何符号链接

$(document).ready(function() {
  console.log('"URL Copy When Hover" ready');
  $("a").hover(function() {
    // var URL = $(this).attr("href");
    var URL = (this.href);
    GM_setClipboard(URL);
    console.log('"'+URL+'" copied to clipboard');
  });
});

如果没有符号链接文件

ls -al .pyenv/versions/x.x.x/bin

,然后尝试使用pyenv重新安装python

答案 4 :(得分:0)

我认为问题是由于默认的HD分区可能引起混乱。 “使用macOS Catalina,您将无法再将文件或数据存储在只读系统卷中,也无法通过命令行将其写入“根”目录(/),例如使用终端”(https://support.apple.com/en-ca/HT210650 )。我在macbook pro和imac上遇到了相同的问题,这迫使我执行出厂重置。我已经放弃了pyenv并决定与Anaconda一起管理python版本。