22

我已经认识到 ElementTree 不会做我想做的事情。我已经查看了 lxml 的文档,看来它可以满足我的目的。要获得 lxml,我需要获得 easy_install。所以我从这里下载了它,并把它放进去/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/。然后我去了那个文件夹,然后运行sh setuptools-0.6c11-py2.6.egg​​.

即安装成功。然后我很兴奋,因为我认为 easy_install 的全部意义在于我可以通过 easy_install lxml 进行安装,lxml 会神奇地被下载、构建和正确安装,为我的导入乐趣做好准备。于是我跑了easy_install lxml。我在下面粘贴了结果。我该怎么办?

easy_install lxml
Searching for lxml
Reading http://pypi.python.org/simple/lxml/
Reading http://codespeak.net/lxml
Best match: lxml 2.2.6
Downloading http://codespeak.net/lxml/lxml-2.2.6.tgz
Processing lxml-2.2.6.tgz
Running lxml-2.2.6/setup.py -q bdist_egg --dist-dir /var/folders/49/49N0+g5QFKCm51AbzMtghE+++TI/-Tmp-/easy_install-rxbP6K/lxml-2.2.6/egg-dist-tmp-fjakR0
Building lxml version 2.2.6.
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available.
Using build configuration of libxslt 1.1.12
Building against libxml2/libxslt in the following directory: /usr/lib
unable to execute gcc-4.0: No such file or directory
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1
4

5 回答 5

22

首先我们不再使用easy_install。我们使用pip。请改用 pip。

正如评论所指出的,为了解决您的特殊问题,您缺少 GCC。在 OS X 上,Xcode命令行工具提供 GCC 以及在 OS X 上构建软件所需的许多其他程序。对于 OS X 10.9 (Mavericks) 和更新版本,要么通过 App Store 安装 Xcode,要么仅安装 Xcode命令行工具

xcode-select --install

有关详细信息,请参阅Apple 开发人员常见问题解答或在网上搜索“安装 Xcode 命令行工具”。

对于旧版本的 OS X,您可以从Apple Developer 网站的下载页面获取 Xcode 命令行工具(需要免费注册)。

一旦你安装了 GCC,如果你的系统上没有安装 C/C++ 库依赖项,你可能仍然会在编译过程中遇到错误。在 OS X 上,Homebrew项目是安装和管理此类依赖项的最简单方法。按照 Homebrew 网站上的说明在您的系统上安装 Homebrew,然后发出

brew update
brew install libxml2 libxslt

可能会在您的情况下造成进一步的麻烦,您将下载的 setuptools 放在/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/. 请不要将任何文件下载到此位置。相反,我建议您将文件下载到您的主目录或常用Downloads目录。下载后,您应该运行sh setuptools-X.Y.Z.egg,然后将其正确安装到适当的位置site-packages并将可执行文件easy_install放在您的路径上。

于 2010-03-03T05:04:57.113 回答
13

确保已安装 libxml2-dev 和 libxslt1-dev

apt-get install libxml2-dev
apt-get install libxslt1-dev

然后您的安装应该正确构建。

于 2010-10-26T18:46:54.890 回答
10

尝试: sudo apt-get install python-lxml

于 2010-11-17T14:51:00.030 回答
2

看起来lxml想要构建一个需要访问 C 编译器的扩展。你需gcc要这样做。尝试运行sudo apt-get install build-essential,这应该可以解决这个特定问题。

于 2010-03-03T00:36:51.023 回答
2

确保首先在您的系统上安装以下所有软件包:

gcc gcc-c++ python-devel libxml2 libxml2-dev libxslt libxslt-dev

您应该能够使用以下变体安装它们: sudo apt-get install sudo yum install

只有在上述所有内容都成功安装后,您才能尝试运行:

sudo pip install lxml
于 2010-11-20T14:01:29.813 回答