我尝试在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不是符号链接
我如何才能使python brew成为我的默认python?
我尝试在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不是符号链接
我如何才能使python brew成为我的默认python?
Answers:
使用Homebrew时,以下命令可以提供更好的效果:
brew doctor
输出:
==> / usr / bin出现在/ usr / local / bin之前,这意味着将使用系统提供的程序代替Homebrew提供的程序。如果您例如这是一个问题。brew安装了Python。
考虑编辑.bash_profile,以将/ usr / local / bin放在$ PATH中的/ usr / bin之前。
python2在/ usr / local / bin中python;设置 export PATH="/usr/local/opt/python/libexec/bin:$PATH"在~/.bash_profile
$ brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.3... 28 symlinks created
$ which python
/usr/local/bin/python
快速解决:
/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/
如自制软件安装程序本身所建议,请确保将其添加到您的.bashrc或.zshrc:
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
.zshrc文件而不是.bashrc需要更改的文件。
我为OSX High Sierra做过“ brew install python”。该$PATH有/usr/local/bin任何其他的路径之前,但仍然which python是指向系统的蟒蛇。
当我深入研究时,发现处没有python可执行文件/usr/local/bin。可执行文件名为python2。要解决此问题,请创建python指向以下内容的符号链接python2:
/usr/local/bin $: ln -s python2 python
自制软件不会替换“ / usr / bin”中的内容。您只需要在路径中将“ / usr / local / bin”放在“ / usr / bin”之前,然后“哪个python”将为您提供“ / usr / local / bin / python”。
强烈建议不要替换/ usr / bin / python(或/ usr / bin / ruby)。
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
要使用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较旧版本的homebrew 。python3在您的路径中- 而不是名为python。的exec 。特别/usr/local/opt/python/libeexec/bin是在我的路径中其他目录的前面进行排序,以解决问题。
修改$ PATH,将其添加到bashrc或bash_profile中:
export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH
更多点击这里: 问题#89791
我所做的brew install python,我的$PATH还是不错的,不过,which python给我的系统中安装了一个。重新启动终端,将其修复。
brew install python然后重新启动终端,没有别的吗?不需要brew unlink&brew link吗?
hash -r
brew unlink & brew link几次了。只需要重启终端即可
我相信有一些方法可以将自制的python设置为默认值,但我认为解决问题的正确方法是不要弄乱系统python的路径:最好创建一个virtualenv,其中默认使用自制的python(通过使用virtualenv- -python选项)。使用类似的工具python_select几乎总是一个坏主意。
改用pyenv在Python版本之间安装和切换。我已经使用rbenv多年了,但做的却是Ruby。在此之前,管理版本非常困难。
请查阅pyenv的github页面以获取安装说明。基本上是这样的:-使用自制软件安装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版本。做就是了:
brew install python
brew link python
之后,将其添加到您的bashrc或bash_profile中:
alias python='/usr/local/bin/python2'
请享用!
link此处答案中的命令)也位于/usr/local/binfor中,python2而不是for 中python。使用别名解决此问题似乎是个坏主意,但我还没有发现更好的方法。
cp /usr/local/bin/python2 /usr/local/bin/python,而不是别名,它似乎运行良好。这是一个更丑陋的解决方法吗?
将/usr/local/opt/python/libexec/bin显式添加到您的.bash_profile:
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
之后,它应该可以正常工作。
您可以编辑/ etc / paths。这是我的:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
然后为python版本添加一个符号链接。就我而言
$ cd /usr/local/bin
$ ln -s python3 python
瞧!
完全不知道默认Python是什么意思。我认为用其他版本替换系统Python解释器是一种不好的做法。系统功能可能在某种程度上取决于系统Python和特定模块或特定Python版本。相反,在一个安全的不同的地方安装自定义的Python的安装,并根据需要,以调用调整$ PATH 您查找,而不是Python的通过路径的寻找默认的Python。
export PATH="/usr/local/opt/python/libexec/bin:$PATH"来源:discourse.brew.sh/t/…–