如何在Mac OS X 10.7上安装Scrapy? (lxml错误)

时间:2013-04-17 19:33:26

标签: macos installation lxml scrapy

我是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命令行工具)

提前感谢您的帮助!

(fyi,我正在使用MacPorts和pip install ...)

1 个答案:

答案 0 :(得分:0)

你最后提到了Macports,也提到了pport。我认为你正在混淆包装和安装方法。

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

当你开始使用macports时,我会使用简单的方法

port install py27-scrapy

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

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