用于scrapy的brew install python - symlink&许可问题

时间:2016-05-27 16:34:54

标签: python scrapy symlink python-2to3

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

==> 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链接消息后来回来,所以我只是继续前进并没有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(由我拥有)。

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

2 个答案:

答案 0 :(得分:3)

基于来自各个论坛的众多帖子,最推荐的最佳做法是让自制软件安装所需的所有python版本,单独留下OSX捆绑的python(& unused)并删除所有其他版本,因为自制软件不一定会播放他们很好。

根据this,自制软件应该能够处理共存的2.7& 3.x蟒蛇。所以我跟着this advice删除了我之前直接从python.org安装的3.4。

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

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

brew doctor
Your system is ready to brew.

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

我现在将使用自制软件安装最新的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成功设立了" Scrapy"虚拟环境使用2.7

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教程,看看这些是否真的有效

答案 1 :(得分:1)

我自己也遇到了类似的问题,这就是我做的事情,我能够制作链接python:

sudo mkdir /usr/local/Frameworks
sudo chown {your username}:{your usergroup} /usr/local/Frameworks/