55

我刚从 MacPorts 切换到 HomeBrew。在安装了所有必需的 XCode 版本和其他软件后,我尝试使用自制软件安装 python:我认为它已成功安装,但当我这样做时,which python它仍然显示 2.7.3,我认为它是 Mountain Lion 附带的版本。

which python
/usr/local/bin/python

python --version
Python 2.7.3

所以我尝试再次安装

brew install python --framework --universal
Warning: python-2.7.5 already installed, it's just not linked

但它说 python 2.7.5 已经安装并且没有链接,我试着做brew link python

这导致我收到以下消息,所以我不知道我应该做什么:

链接 /usr/local/Cellar/python/2.7.5... 警告:无法链接 python。正在取消链接...

Error: Could not symlink file: /usr/local/Cellar/python/2.7.5/bin/smtpd2.py
Target /usr/local/bin/smtpd2.py already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name
4

11 回答 11

57

安装 python3 后brew install python3 出现错误:

Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

输入brew link python3错误后是:

Linking /usr/local/Cellar/python/3.6.4_3... Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

解决问题:

sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/*
brew link python3

在此之后,我可以通过键入打开 python3python3

(来自https://github.com/Homebrew/homebrew-core/issues/20985

于 2018-03-06T19:57:18.980 回答
13

在终端中,键入:

brew link python
于 2016-01-05T21:56:29.070 回答
10

如果你用过

brew install python

在“取消链接”之前你得到了

brew info python
/usr/local/Cellar/python/2.7.11

python -V
Python 2.7.10

也一样

brew unlink python && brew link python

并打开一个新的终端外壳

python -V
Python 2.7.11
于 2016-05-20T08:44:49.437 回答
9

我认为您必须准确地确定要与以下命令链接的版本brew link python

brew link python 3

它会给你一个这样的错误:

Linking /usr/local/Cellar/python3/3.5.2... 
Error: Could not symlink bin/2to3-3.5
Target /usr/local/bin/2to3-3.5
already exists. 

您可能想要删除它:

rm '/usr/local/bin/2to3-3.5'

要强制链接并覆盖所有冲突文件:

brew link --overwrite python3

列出所有将被删除的文件:

brew link --overwrite --dry-run python3

但是您必须复制/粘贴命令以强制链接是:

brew link --overwrite python3

我认为您必须安装版本(较新的)。

于 2016-07-20T05:19:01.173 回答
6

在 OS X High Sierra 上,我必须这样做:

sudo install -d -o $(whoami) -g admin /usr/local/Frameworks
brew uninstall --ignore-dependencies python
brew install python
python --version # should work, returns 2.7, which is a Python thing (it's weird, but ok)

归功于https://gist.github.com/irazasyed/7732946#gistcomment-2235469

我认为这比递归地 chowning /usr/local 目录要好,但这可能会解决其他问题;)

于 2018-03-16T04:28:05.043 回答
2

此答案用于在 Mac OS X El Capitan 上将 Python 2.7.10 升级到 Python 2.7.11。在终端类型上:

brew unlink python

在终端上输入之后

brew install python
于 2015-12-15T16:28:53.580 回答
2

brew 默认切换到 python3,所以如果你还想将 python2 设置为默认 bin python,运行:

brew unlink python && brew link python2 --force
于 2018-03-02T06:44:45.757 回答
2

您可以按照以下步骤操作。

$ python3 --version  
$ brew unlink python@2
$ brew link python3   
$ python3 --version   

所有步骤

于 2020-01-07T08:35:32.190 回答
0

我的问题是我有很多不同版本的python,所以即使在我做了 brew link 之后它也会打开一个不同的python3.7。我执行了以下附加步骤以在链接后将其设为默认值

首先,打开设置python路径的文档

 nano ~/.bash_profile

然后出现这样的事情:

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

这里的问题是我的 brew 框架的 Python 不在文件夹中!所以我更改了 python 3.7 的框架,在我的系统中如下所示

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/usr/local/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

更改并保存文件。重新启动计算机,然后输入python3.7,我得到了为 brew 安装的 python。

不确定我的案例是否适用于所有人,但值得一试。不确定每个人的框架路径是否相同,请在尝试之前确定。

于 2019-12-06T22:32:36.280 回答
0

我不建议使用符号链接,它不仅仅是指向位置python,它周围的整个环境也可能是混合版本

我会这样做:

$ brew install pyenv
$ pyenv install 3.7.3
$ pyenv global 3.7.3
于 2022-01-21T08:05:00.170 回答
-2

我使用这些命令来解决它。

mkdir /usr/local/lib
mkdir /usr/local/lib/pkgconfig
brew link python
于 2018-12-08T03:04:06.560 回答