我尝试在Mac OS X 10.6.2上切换到Homebrew(使用fink和macport之后)。我用
安装了python 2.7brew install python
问题是,与Macport相反,似乎没有python_select实用程序,我的默认mac python始终是默认的
which python
给我
/usr/bin/python
和/usr/bin/python
不是符号链接
如何让python brew flavor成为我的默认python?
答案 0 :(得分:105)
当您使用Homebrew时,以下命令可以提供更好的图片:
brew doctor
输出:
==> / usr / bin发生在/ usr / local / bin之前这意味着将使用系统提供的程序而不是由提供的程序 家酿。如果您这样做,这是一个问题。 brew安装了Python。
考虑编辑你的.bash_profile,将:/ usr / local / bin放在前面 $ PATH中的/ usr / bin。
答案 1 :(得分:79)
请参阅:How to symlink python in Homebrew?
$ brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.3... 28 symlinks created
$ which python
/usr/local/bin/python
答案 2 :(得分:59)
快速修复:
/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/
答案 3 :(得分:37)
我做过" brew install python"对于OSX High Sierra。 $PATH
在任何其他路径之前都有/usr/local/bin
,但仍然which python
指向系统的python。
当我看得更深时,我发现/usr/local/bin
没有python可执行文件。可执行文件名为python2
。要解决此问题,请创建指向python
的符号链接python2
:
/usr/local/bin $: ln -s python2 python
答案 4 :(得分:31)
根据自制软件安装程序本身的建议,请务必将其添加到.bashrc
或.zshrc
:
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
答案 5 :(得分:23)
Homebrew不会替换“/ usr / bin”中的内容。你只想在你的路径中将“/ usr / local / bin”放在“/ usr / bin”之前,然后“which python”会给你“/ usr / local / bin / python”。
更换/ usr / bin / python(或/ usr / bin / ruby)是非常不推荐的。
答案 6 :(得分:16)
python
公式现在使用python3
(现在为v3.6.5),brew将链接目录:
/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
要使用自制软件的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
。答案 7 :(得分:12)
修改你的$ PATH,在你的bashrc或bash_profile中添加:
export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH
更多点击此处: Issue #89791
答案 8 :(得分:10)
您需要编辑PATH环境变量,以确保在/ usr / bin之前搜索自制python所在的位置。您还可以在shell配置中进行设置,以便将像PYTHON这样的变量设置为所需的python版本,并从命令行调用$PYTHON
而不是python
。
另外,正如另一张海报所述(特别是在mac上)请勿将/ usr / bin中的python搞砸到指向另一个python安装。如果你这样做,你只是在惹麻烦。
答案 9 :(得分:9)
我做了brew install python
,我的$PATH
很好,但仍然,which python
给了我安装系统的一个。重新启动终端修复它。
答案 10 :(得分:5)
我相信有办法让自制的python默认,但在我看来,解决问题的正确方法是不要搞乱系统python路径:最好创建一个virtualenv,其中自制的python将是默认的(通过使用virtualenv --python选项)。使用像python_select
这样的工具几乎总是一个坏主意。
答案 11 :(得分:5)
python
现在指向python3
,如果您需要python 2
,请执行以下操作:
brew install python@2
然后在.zshrc或.bashrc文件中
export PATH="/usr/local/opt/python@2/libexec/bin:$PATH"
现在,pyhon --version
= Python 2.7.14和python3 --version
= Python 3.6.4。
这就是我以前在终端中看到的行为。
答案 12 :(得分:4)
使用pyenv代替安装和切换Python版本。我已经使用rbenv多年了,但做的却是Ruby。在此之前,管理版本非常麻烦。
请咨询pyenv's github page以获得安装说明。基本上是这样的:
-使用自制软件安装pyenv。 brew install pyenv
-在Shell启动脚本的末尾添加一个函数,以便pyenv可以做到。 echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
pyenv install 3.7.7
。pyenv global 3.7.7
。pyevn local
。这将在项目的文件夹中创建一个文件,该文件指定python版本。 Pyenv将使用该文件中的版本覆盖全局python版本。 答案 13 :(得分:1)
只是做:
brew install python
brew link python
完成后,将其添加到bashrc或bash_profile:
alias python='/usr/local/bin/python2'
享受!
答案 14 :(得分:1)
如果你是鱼壳
echo 'set -g fish_user_paths "/usr/local/opt/python/libexec/bin" $fish_user_paths' >> ~/.config/fish/config.fish
答案 15 :(得分:0)
您可以编辑/ etc / paths。这是我的:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
然后为python版本添加符号链接。就我而言
$ cd /usr/local/bin
$ ln -s python3 python
Voila!
答案 16 :(得分:0)
自高塞拉山脉以来,您需要使用:
sudo chown -R $(whoami) $(brew --prefix)/*
这是因为/usr/local
不再可用
答案 17 :(得分:0)
将/usr/local/opt/python/libexec/bin
明确添加到您的.bash_profile
:
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
之后,它应该可以正常工作。
答案 18 :(得分:-3)
不知道你对默认Python的意思。我认为用不同的版本替换系统Python解释器是不好的做法。系统功能可能以某种方式依赖于系统Python和特定模块或特定的Python版本。而是将您的自定义Python安装安装在一个安全的不同位置,并根据需要调整$ PATH,以便通过路径查找调用您 Python,而不是查找默认的Python。