尽管我已经有 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
,我还会这样做吗?能够运行 python 3.4.0 用于非 Scrapy 目的吗?想必我应该使用 sudo
来完成这些操作?
3) 如果我执行#2,/usr/local/Frameworks
上的权限问题会自行解决还是我需要执行其他操作?
跟进:
设置 virtualenv 的建议可能是一个不错的建议。但我想我可能需要先完成安装。
我现在已经删除了 2to3。我还尝试使用 sudo 运行 brew link --overwrite python
但它回来时胆怯地拒绝 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 中存在许多与现有 3.4.0(这些链接由 root 拥有)和新的 2.7.11(由我拥有)相关的链接。
那我现在该怎么办?非常感谢。
最佳答案
根据来自各个论坛的大量帖子,最推荐的最佳实践是让 homebrew 安装您需要的所有版本的 python,单独保留 OSX 捆绑的 python(且未使用)并删除所有其他版本,因为 homebrew 不一定能很好地运行和他们在一起。
根据this ,homebrew 应该能够处理共存的 2.7 和 3.x python。所以我关注了this advice删除我之前直接从 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 教程,看看所有这些是否真的有效
关于python - 为 scrapy 安装 python - 符号链接(symbolic link)和权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37488439/