我只是用brew在OS X上安装了Python 3。python3
命令现在使用 brew Python 3.6 启动解释器,但python
仍然使用默认系统 Python 2.7 打开解释器。
我的理解是,默认情况下,brew Python 现在应该覆盖系统 Python。 (即,参见 $PATH 中的/usr/bin 和/usr/local/bin 的顺序以及更多内容)。在我的 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
为什么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
~
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
请查看 Homebrew的3.x python到你的PATH。
查看您需要执行的操作brew info python
提示:
指向的未版本化符号链接
python
、python-config
、pip
等python3
、python3-config
、pip3
等分别是 安装到/usr/local/opt/python/libexec/bin 中
提示是,因此您必须在路径中/usr/bin
之前添加/usr/local/opt/python/libexec/bin
(而不是某些来源中所述的/usr/local/bin
例如 https://docs.python-guide.org/starting/install3/osx/)
另请参阅 https://github.com/Homebrew/homebrew-core/issues/15746
让自制 python 工作的单行代码:
中兴
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
重新加载文件
我在如何链接家庭酿造的python版本并将其设置为默认值中尝试了一些建议的解决方案,但没有一个奏效。 最终,我通过符号链接 python3 --> python 解决了这个问题:
ln -s /usr/local/bin/python3 /usr/local/bin/python