我已经开始认识到ElementTree不会按照我的意愿去做。我已经查看了lxml的文档,看来它将满足我的目的。要获得lxml,我需要获得easy_install。所以我从here下载了它,并将其放在/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
答案 0 :(得分:23)
首先我们不再使用easy_install了。我们使用pip。请改用pip。
为了解决你的特殊问题,正如评论所指出的那样,你错过了GCC。在OS X上,Xcode命令行工具提供了GCC,以及在OS X上构建软件所需的许多其他程序。对于OS X 10.9(Mavericks)及更新版本,可以通过App Store安装Xcode,或者,仅使用
安装Xcode命令行工具xcode-select --install
有关详细信息,请参阅Apple Developer FAQ或在网络上搜索“安装Xcode命令行工具”。
对于旧版OS X,您可以从downloads page of the Apple Developer website获取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
放在您的路径上。
答案 1 :(得分:13)
确保安装了libxml2-dev和libxslt1-dev
apt-get install libxml2-dev
apt-get install libxslt1-dev
然后你的安装应该正确构建。
答案 2 :(得分:10)
尝试:
sudo apt-get install python-lxml
答案 3 :(得分:2)
看起来lxml
想要构建一个需要访问C编译器的扩展。您需要gcc
。尝试运行sudo apt-get install build-essential
,这应该可以解决这个问题。
答案 4 :(得分:2)
确保首先在系统上安装了以下所有软件包:
gcc gcc-c++ python-devel libxml2 libxml2-dev libxslt libxslt-dev
您应该能够使用以下变体安装它们: sudo apt-get install sudo yum install
如果您已成功安装以上所有内容,则应尝试运行:
sudo pip install lxml