2010-03-03 148 views
22

我已经认识到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 ...以安装lxml

安装成功。然后我兴奋起来,因为我认为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 
+1

(回复:您的代码编辑器问题)缩进四个空格来创建代码块,或者在突出显示某些内容时单击编辑器中的“01010”按钮。 – 2010-03-03 00:33:38

回答

23

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

为了解决您的特殊问题,正如评论指出的,您错过了GCC。在OS X上,Xcode命令行工具提供了GCC以及在OS X上构建软件所需的许多其他程序。对于OS X 10.9(小牛)和更新版本,可以通过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项目是安装和管理这种依赖关系的最简单方法。按照说明家酿网站上您的系统上安装自制软件,然后发出

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放在您的路径上。

+0

+1表示我们应该使用pip。我不知道。软件包正常工作时很好。 – Muhd 2011-10-29 02:46:47

+2

对于伟大的图形为+1 – Purrell 2012-01-27 22:45:15

+0

上面的点链接已损坏。我认为是这样的:https://pip.pypa.io/en/latest/ – 2015-02-03 18:59:22

2

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

+0

sudo apt-get install gcc sudo:apt-get:command not found – Alex 2010-03-03 01:06:48

+1

这是什么OS /发行版? – 2010-03-03 01:12:13

+0

OSX 10.5.8,python 2.6 – Alex 2010-03-03 01:14:52

13

确保您拥有的libxml2-dev的和libxslt1-dev的安装

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

那么你的安装应正确地构建。

+0

感谢您指出这一点 – Purrell 2012-01-27 22:45:34

+0

谢谢。有效! – 2012-06-14 19:47:19

10

尝试: sudo apt-get install python-lxml

+0

对于Python3,使用“apt-get install python3-lxml” – wheleph 2011-10-01 19:20:02

+0

更好地使用pip。它会给你一个比你的包维护者更新的版本。迟早你会很高兴你使用它。 – mlissner 2012-11-27 05:15:39

2

确保所有下面的包在系统上安装第一:

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

您应该能够使用的一些变种进行安装: sudo易于得到安装 sudo yum install

只有在成功安装上述所有设备之后,才能尝试运行:

sudo pip install lxml