2

尽管我已经有 2.6、2.7.10 和 3.4.0,但我正在按照 Scrapy 安装指南安装新的 python (2.7.11) 副本。安装一直很好,直到出现这些错误的最后一步

==> Pouring python-2.7.11.el_capitan.bottle.2.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/2to3
Target /usr/local/bin/2to3
already exists. You may want to remove it:
  rm '/usr/local/bin/2to3'

To force the link and overwrite all conflicting files:
  brew link --overwrite python

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

Possible conflicting files are:
/usr/local/bin/2to3 -> /Library/Frameworks/Python.framework/Versions/3.4/bin/2to3
Error: Permission denied - /usr/local/Frameworks

而且

ls -l /usr/local/Frameworks
ls: /usr/local/Frameworks: No such file or directory

ls -l /usr/local/bin/2to3
lrwxr-xr-x  1 root  wheel  66  7 Apr  2014 /usr/local/bin/2to3 -> ../../../Library/Frameworks/Python.framework/Versions/3.4/bin/2to3

我的问题:

1)我应该做sudo brew install python而不是brew install python?希望我不需要卸载 2.7.11 并重新开始。

2)如果我执行他们建议的两个步骤rm '/usr/local/bin/2to3'brew link --overwrite python我是否仍然能够为非 Scrapy 目的运行 python 3.4.0?大概我应该用sudo?

3)如果我做了#2,权限问题会/usr/local/Frameworks自行解决还是我需要做其他事情?

跟进:

设置 virtualenv 的建议可能是一个很好的建议。但我想我可能需要先完成安装。

我现在已经删除了 2to3。我也尝试brew link --overwrite python使用 sudo 运行,但它以这种懦弱的拒绝 sudo brew link msg 的方式返回,所以我只是继续并在没有 sudo 的情况下完成了它。

但是 brew 链接仍然在权限上失败

brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.11... Error: Permission denied - /usr/local/Frameworks

然而

ls -l /usr/local/Frameworks
ls: /usr/local/Frameworks: No such file or directory

此外,/usr/local/bin 中的许多与 python 相关的链接都指向现有的 3.4.0(root 拥有的那些链接)和新的 2.7.11(我拥有)。

那我现在该怎么办?非常感谢。

4

2 回答 2

3

根据来自各种论坛的大量帖子,最推荐的最佳做法是让 homebrew 安装您需要的所有 python 版本,将 OSX 捆绑的 python 单独放置(和未使用)并删除所有其他版本,因为 homebrew 不一定能很好地配合它们。

据此自制软件应该能够处理共存的 2.7 和 3.x 蟒蛇。所以我已经按照这个建议从 python.org 中删除了我之前自己安装的 3.4。

我进一步遵循了brew doctor提供的建议,这些建议与上面链接中提到的如何删除非自制 python 的步骤非常相似。随后

brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.11... 5 symlinks created

brew doctor
Your system is ready to brew.

所以看起来 Homebrew 安装的 2.7.11 终于完成了。

我现在将使用 homebrew 安装最新的 3.x 版本并更新这篇文章。如果成功,我将进一步设置 virtualenv 来安装 Scrapy。

跟进:

brew install python3成功安装 Python 3.5.1

pip install virtualenv成功安装 virtualenv 15.0.1

virtualenv -p /usr/local/bin/python2.7 Scrapy使用 2.7 成功设置“Scrapy”虚拟环境

source Scrapy/bin/activate启动“Scrapy”虚拟环境

pip install lxml成功安装lxml 3.6.0

pip install Scrapy成功安装 Scrapy 1.1.0

pip freeze > Scrapy/requirements.txt生成的依赖项列表

deactivate退出“Scrapy”虚拟环境

明天将尝试 Scrapy 教程,看看所有这些是否真的有效

于 2016-05-28T03:45:08.167 回答
1

我自己也遇到了类似的问题,这就是我所做的,我能够 brew link python:

sudo mkdir /usr/local/Frameworks
sudo chown {your username}:{your usergroup} /usr/local/Frameworks/
于 2017-05-23T21:32:17.573 回答