代码之家  ›  专栏  ›  技术社区  ›  J Jones

brew安装的Python不覆盖系统Python

  •  18
  • J Jones  · 技术社区  · 6 年前

    我刚刚使用brew在OS X上安装了Python 3 python3 命令现在使用brew Python 3.6启动解释器,但 python 仍然使用默认系统Python 2.7打开解释器。

    我的理解是,默认情况下,brew Python现在应该覆盖系统Python。(即,参见 Order of /usr/bin and /usr/local/bin and more in $PATH )。在我的路径中,/usr/local/bin在/usr/bin之前,所以这不应该是路径问题。我尝试重新启动终端,但没有效果。

    这是我的完整路径,以防相关。

    /Users/**/.rvm/gems/ruby-1.9.3-p362/bin:/Users/**/.rvm/gems/ruby-1.9.3-p362@global/bin:/Users/**/.rvm/rubies/ruby-1.9.3-p362/bin:/Users/**/.rvm/bin:/Users/**/.rvm/bin:/Users/**/Python/PmagPy/programs/conversion_scripts2/:/Users/**/Python/PmagPy/programs/conversion_scripts/:/Users/**/Python/PmagPy/programs:/usr/local/heroku/bin:./bin:/usr/local/sbin:/usr/local/bin:/usr/local/share/npm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin
    

    为什么brew Python不占优先地位?如何修复(或排除故障)?如果找不到其他选项,我可以创建一个别名,但我更愿意了解发生了什么并找到问题的根源。

    更新时间:

    我签出了“可能重复”的问题,但我的问题似乎不是链接问题:

     ~ brew link --overwrite --dry-run python
    Warning: Already linked: /usr/local/Cellar/python/3.6.4_4
    To relink: brew unlink python && brew link python
     ~ 
    
    3 回复  |  直到 6 年前
        1
  •  37
  •   Claire Furney    6 年前

    TL;DR公司 将以下内容添加到 .bash_profile (或同等产品):

    export PATH="/usr/local/opt/python/libexec/bin:$PATH"

    解释

    似乎通过自制的python现在处理方式有所不同(请参见 https://docs.brew.sh/Homebrew-and-Python )。

    • python3 指向Homebrews Python 3。x(如已安装)
    • python2 指向Homebrews Python 2.7。x(如已安装)
    • python 指向Homebrews Python 2.7。x(如果已安装),否则将使用macOS系统Python。退房 brew info python 如果要添加 Homebrews 3。x python到您的路径。

    正在签出 brew信息python 提示您需要做什么:

    未版本符号链接 蟒蛇 ,则, python-config ,则, pip 等,指向 蟒蛇3 ,则, python3-config ,则, pip3 等,分别 安装到/usr/local/opt/python/libexec/bin

    提示是,因此您必须添加 /usr/local/opt/python/libexec/bin 之前 /usr/bin 在你的道路上(不是 /usr/local/bin 如某些来源所述,例如。 https://docs.python-guide.org/starting/install3/osx/ )

    另请参见 https://github.com/Homebrew/homebrew-core/issues/15746

        2
  •  4
  •   Florent Roques Benjamin Pasero    4 年前

    让自制python正常工作的一条线索:

    zsh公司

    echo -n 'export PATH="/usr/local/opt/python/libexec/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
    

    猛击

    echo -n 'export PATH="/usr/local/opt/python/libexec/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
    

    说明:
    >> filename 在文件末尾追加
    source filename 重新加载文件

        3
  •  -1
  •   J Jones    6 年前

    我在年尝试了一些建议的解决方案 How to link home brew python version and set it as default ,但没有一个奏效。最终,我通过将python3进行符号化来解决这个问题-->python:

    ln -s /usr/local/bin/python3 /usr/local/bin/python