我尝试在Mac OS X 10.6.2上切换到Homebrew(在使用fink和macport之后).我安装了python 2.7
brew install python
Run Code Online (Sandbox Code Playgroud)
问题是,与Macport相反,似乎没有python_select实用程序,我的默认mac python总是默认的
which python
Run Code Online (Sandbox Code Playgroud)
给我吗
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
而/usr/bin/python
不是一个符号链接
我怎样才能使python brew风格成为我的默认python?
Vis*_*hal 111
当您使用Homebrew时,以下命令可以提供更好的图片:
brew doctor
Run Code Online (Sandbox Code Playgroud)
输出:
==>/usr/bin发生在/ usr/local/bin之前这意味着将使用系统提供的程序而不是Homebrew提供的程序.如果您这样做,这是一个问题.brew安装了Python.
考虑编辑.bash_profile,将/ usr/local/bin放在$ PATH中的/ usr/bin之前.
Tru*_*an1 99
对于 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"
Run Code Online (Sandbox Code Playgroud)
结果:
% 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)
Run Code Online (Sandbox Code Playgroud)
2023 年更新
Brew python 再次更改了它的位置,并且必须将我的位置更新~/.zshrc
为:
export PATH="$(brew --prefix)/opt/python@3/libexec/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
不再有.../opt/python/...
令人烦恼的地方,因为现在我必须明确指定 v3,但至少比必须像评论中那样指定次要版本要好。
aka*_*ppi 82
$ brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.3... 28 symlinks created
$ which python
/usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)
Bij*_*jan 63
快速解决:
/etc/paths
在我的情况下/etc/paths
看起来像:
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
Run Code Online (Sandbox Code Playgroud)
如果你想进一步了解OSX中的路径,我发现这篇文章非常有用:
http://muttsnutts.github.com/blog/2011/09/12/manage-path-on-mac-os-x-lion/
Sac*_*hot 42
我为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
Pam*_*put 41
正如自制软件安装程序本身所建议的那样,请务必将其添加到您的.bashrc
或.zshrc
:
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
Ada*_*erg 23
Homebrew不会替换"/ usr/bin"中的内容.你只想在你的路径中将"/ usr/local/bin"放在"/ usr/bin"之前,然后"which python"会给你"/ usr/local/bin/python".
更换/ usr/bin/python(或/ usr/bin/ruby)是非常不推荐的.
Pic*_*Boy 20
python
公式现在使用python3
(现在为v3.6.5),brew将链接目录:
/usr/local/opt/python -> ../Cellar/python/3.6.5
Run Code Online (Sandbox Code Playgroud)
它还会链接二进制文件:
/usr/local/bin/python3 -> ../Cellar/python/3.6.5/bin/python3
Run Code Online (Sandbox Code Playgroud)
如果仍需要使用python2.x
,请使用:
brew install python@2
Run Code Online (Sandbox Code Playgroud)
要使用自制软件python
,只需将其目录放在PATH中,用于bash:
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
用于鱼类:
set -x PATH /usr/local/opt/python/libexec/bin $PATH
Run Code Online (Sandbox Code Playgroud)
注意:
python
/usr/local/share/python
旧版本.小智 12
修改$ PATH,在bashrc或bash_profile中添加:
export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
更多点击此处: 问题#89791
Jos*_*del 10
您需要编辑PATH环境变量,以确保在/ usr/bin之前搜索自制python所在的位置.您还可以在shell配置中进行设置,以便将像PYTHON这样的变量设置为所需的python版本并调用$PYTHON
而不是python
从命令行调用.
另外,正如另一张海报所述(特别是在Mac上)请勿将/ usr/bin中的python与其他python安装指向它.如果你这样做,你只是在惹麻烦.
我做了brew install python
,我$PATH
很好,但仍然which python
给了我一个安装的系统.重启终端修复了它.
我相信有办法让自制的python默认,但在我看来,解决问题的正确方法是不要搞乱系统python路径:最好创建一个virtualenv,其中自制的python将是默认的(通过使用virtualenv - -python选项).使用像这样的工具python_select
几乎总是一个坏主意.
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。这就是我在终端中经常看到的行为。
将/usr/local/opt/python/libexec/bin
显式添加到您的.bash_profile
:
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
之后,它应该可以正常工作。
使用 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 版本。 归档时间: |
|
查看次数: |
164649 次 |
最近记录: |