我刚用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
~
答案 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
提示您需要做什么:
未版本化的符号链接
python
,python-config
,pip
等指向 分别为python3
,python3-config
,pip3
等 安装到/ 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
)
答案 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