我试图在Mac OS X 10.6.2上切换到Homebrew(之前使用fink和macport)。我已经安装了Python 2.7。
brew install python
问题是与Macport相反,似乎没有python_select实用程序,我的默认Mac Python始终是默认值。which python
给我
/usr/bin/python
而且 /usr/bin/python
不是符号链接
我该怎么做让 brew 版本的 python 成为我的默认 python?
正如homebrew安装程序本身建议的那样,一定要将此添加到您的.bashrc
或.zshrc
中:
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
.zshrc
文件而不是 .bashrc
文件。 - user394430由于您正在使用Homebrew,因此以下命令可以提供更好的图像:
brew doctor
输出:
==> /usr/bin 出现在 /usr/local/bin 之前,这意味着系统提供的程序将被使用,而不是 Homebrew 提供的程序。如果你安装了 brew 的 Python,这就是个问题。
请考虑编辑您的 .bash_profile 文件,将 /usr/local/bin 放在 $PATH 中 /usr/bin 之前。
/usr/local/bin
目录下只有 python2
。如果想要使用 python
命令,则需在 ~/.bash_profile
文件中添加以下语句:export PATH="/usr/local/opt/python/libexec/bin:$PATH"
。请注意,翻译过程中需要保持原文意思不变,同时让语言更加通俗易懂。 - tormodatt$ brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.3... 28 symlinks created
$ which python
/usr/local/bin/python
对于 Apple Silicon 机器,路径略有不同。在运行 brew install python
后,您必须确保您的 ~/.zshrc
使用正确的 Homebrew 路径:
# Homebrew
eval "$(/opt/homebrew/bin/brew shellenv)"
# Homebrew: Python
export PATH="/opt/homebrew/opt/python/libexec/bin:$PATH"
结果:
% which python
/opt/homebrew/opt/python/libexec/bin/python
% python --version
Python 3.9.9
% which pip
/opt/homebrew/opt/python/libexec/bin/pip
% pip -V
pip 21.3.1 from /opt/homebrew/lib/python3.9/site-packages/pip (python 3.9)
更新 2023
Brew Python 又一次更改了它的位置,我不得不更新我的 ~/.zshrc
文件为:
export PATH="$(brew --prefix)/opt/python@3/libexec/bin:$PATH"
现在没有 .../opt/python/...
了,这很烦人,因为现在我必须明确指定v3,但至少比在注释中指定次要版本要好。
/opt/homebrew/opt/python@3.10/libexec/bin/
。 - Alex Bender.../opt/python/...
已经回来了,不再需要使用 python@3
了。 - undefined快速解决方法:
/etc/paths
在我的情况下,/etc/paths
看起来像这样:
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
如果您想了解更多关于OSX中路径的信息,我发现这篇文章非常有用:
http://muttsnutts.github.com/blog/2011/09/12/manage-path-on-mac-os-x-lion/
我在OSX High Sierra上执行了"brew install python"。在任何其他路径之前,$PATH
中都有/usr/local/bin
,但是which python
仍然指向系统的python。
当我进一步查找时,发现在/usr/local/bin
中没有python可执行文件。该可执行文件命名为python2
。要解决此问题,请创建一个象征性链接python
指向python2
:
/usr/local/bin $: ln -s python2 python
python
公式现在使用 python3
(目前为v3.6.5版本),homebrew将链接该 目录:
/usr/local/opt/python -> ../Cellar/python/3.6.5
它还将链接二进制文件:
/usr/local/bin/python3 -> ../Cellar/python/3.6.5/bin/python3
如果您仍需要使用python2.x
,请使用:
brew install python@2
要使用Homebrew提供的Python
,只需将其目录加入到PATH中,在bash中:
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
对于鱼来说:
set -x PATH /usr/local/opt/python/libexec/bin $PATH
注意:
python
进行覆盖。/usr/local/share/python
。python3
,而不是一个名为python
的可执行文件。具体地说,在我的路径中将/usr/local/opt/python/libeexec/bin
放在其他目录之前可以解决问题。 - cam8001Homebrew不会替换"/usr/bin"中的任何文件。您只需将"/usr/local/bin"放在"/usr/bin"之前即可,然后"which python"将给出"/usr/local/bin/python"。
强烈不建议替换"/usr/bin/python"(或"/usr/bin/ruby")。
修改你的$PATH,在你的bashrc或bash_profile中添加以下内容:
export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH
更多点击这里:Issue #89791
我执行了brew install python
,我的$PATH
正确无误,但是which python
仍然显示系统安装的版本。重新启动终端就解决了问题。
brew install python
,然后重新启动终端,而且没有其他需要brew unlink
& brew link
的操作吗? - Con Antonakoshash -r
命令。 - georgexshbrew unlink & brew link
。只需要重新启动终端就好了。 - Dominic
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
。来源:https://discourse.brew.sh/t/what-happened-to-the-standard-python-package/935 - George