【问题标题】:brew install python for scrapy - symlink & permission issuesbrew install python for scrapy - 符号链接和权限问题
【发布时间】:2016-09-26 02:04:07
【问题描述】:

尽管我已经安装了 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。我还尝试使用 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 中的许多与 python 相关的链接都指向现有的 3.4.0(那些链接归 root)和新的 2.7.11(归我所有)。

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

【问题讨论】:

  • 我建议使用virtual environment 并使用您想要的所有配置
  • 谢谢,eLRuLL。您设置 virtualenv 的建议似乎很有意义。但是我不需要先完成安装吗?我已尝试执行 brew 在原始 errmsgs 中建议的步骤,但由于对不存在的文件/文件夹的权限,它仍然无法进行链接!

标签: python scrapy symlink python-2to3


【解决方案1】:

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

根据this,自制软件应该能够处理共存的 2.7 和 3.x 蟒蛇。所以我已经关注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 教程,看看所有这些是否真的有效

【讨论】:

  • 您可能还需要执行以下操作:sudo mkdir /usr/local/Frameworkssudo chown foo:bar /usr/local/Frameworkschmod 755 /usr/local/Frameworksbrew link --overwrite python
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-03
    • 2019-03-29
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 2013-06-28
    • 2021-10-27
    相关资源
    最近更新 更多