【问题标题】:How to install Scrapy on Mac OS X 10.7 ? (lxml error)如何在 Mac OS X 10.7 上安装 Scrapy? (lxml 错误)
【发布时间】:2013-04-10 17:21:58
【问题描述】:

我是一个 Python 新手,在 Mac OS X 10.7 上安装 Scrapy 时遇到问题。我尝试了很多不同的东西,但总而言之,当我运行时:

scrapy startproject tutorial

我遇到了这些错误:

ImportError: dlopen(/Library/Python/2.7/site-packages/lxml/etree.so, 2): Symbol not found: ___xmlStructuredErrorContext
  Referenced from: /Library/Python/2.7/site-packages/lxml/etree.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/lxml/etree.so

经过大量谷歌搜索,我关注了this post 并尝试了:

python setup.py build --static-deps --libxml2-version=2.7.8  && pip install lxml

但它告诉我:

RuntimeError: ERROR: Trying to build without Cython, but pre-generated 'src/lxml/lxml.etree.c' is not available (pass --without-cython to ignore this error).

如果我使用 —without-cython 选项运行相同的命令,我会得到:

error: command 'llvm-gcc-4.2' failed with exit status 1

(虽然我已经安装了 XCode 命令行工具)

提前感谢您的帮助!

(仅供参考,我正在使用 MacPorts 和 pip install...)

【问题讨论】:

    标签: macos installation lxml scrapy


    【解决方案1】:

    你在最后提到了 Macports,还提到了 pip。我认为您混淆了打包和安装方法。

    使用 macports python 时不应看到第一个导入错误,因为它将其库放在 /opt/ 下

    因为你已经开始使用 macports 我会使用简单的方法

    port install py27-scrapy
    

    这将安装所有需要的包(包括 python 和 lxml)以让 scrapy 工作。

    要运行scrapy,您需要使用/opt/local/bin/python2.7 中的macports python。如果 /opt/local/bin 在您的路径上,并且您运行 port select 以选择它作为找到的 python,则可以将其设置为默认 python。 scrapy 的可执行脚本是/opt/local/bin/scrapy-2.7 使用版本号是因为您可以同时运行多个版本的python。

    【讨论】:

    • 感谢您的帮助。我有port select --show python:The currently selected version for 'python' is 'none'. 然后我做了sudo port select --set python python27:Selecting 'python27' for 'python' succeeded. 'python27' is now active. 现在,我可以开始一个项目输入sudo /opt/local/bin/scrapy-2.7 startproject tutorial
    猜你喜欢
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 2011-12-19
    • 2012-11-09
    • 2012-01-09
    • 2013-11-02
    • 2013-09-15
    相关资源
    最近更新 更多