brew-installed Python不会覆盖系统python

时间:2018-03-21 17:56:41

标签: python macos path homebrew

我刚用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)。在我的PATH中,/ usr / local / bin位于/ usr / bin之前,所以它不应该是PATH问题。我试过重启终端,没有效果。

如果相关,这是我的完整路径。

/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

为什么不优先使用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 个答案:

答案 0 :(得分:11)

TL; DR 将以下内容添加到您的.bash_profile(或等效名称)中:

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

说明

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

  
      
  • python3指向Homebrew的Python 3.x(如果已安装)
  •   
  • python2指向Homebrew的Python 2.7.x(如果已安装)
  •   
  • python指向Homebrew的Python 2.7.x(如果已安装),否则指向macOS系统的Python。如果要添加,请查看brew info python   自制软件的3.x python插入您的PATH。
  •   

签出brew info python提示您需要做什么:

  

未版本化的符号链接pythonpython-configpip等指向   分别为python3python3-configpip3等   安装到/ usr / local / opt / python / libexec / bin

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

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

答案 1 :(得分:1)

使自制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重新加载文件

答案 2 :(得分:-1)

我在How to link home brew python version and set it as default中尝试了一些建议的解决方案,但没有一个有效。最终我通过symlinking python3解决了这个问题 - >蟒:

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