安装easy_install以便安装lxml
我已经接受了一个事实,那就是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
5 个回答
试着运行以下命令来安装一个叫做python-lxml的工具:
sudo apt-get install python-lxml
确保你安装了 libxml2-dev 和 libxslt1-dev 这两个软件包。
apt-get install libxml2-dev
apt-get install libxslt1-dev
这样你的安装过程就应该能顺利完成了。
首先,我们现在不再使用easy_install了。我们用的是pip。请用pip来替代。
关于你遇到的问题,评论里提到你缺少GCC。在OS X系统上,Xcode命令行工具提供了GCC,还有很多其他构建软件所需的程序。对于OS X 10.9(Mavericks)及更新的版本,你可以通过App Store安装Xcode,或者只安装Xcode命令行工具,方法是:
xcode-select --install
想了解更多细节,可以查看苹果开发者常见问题,或者在网上搜索“安装Xcode命令行工具”。
对于旧版本的OS X,你可以在苹果开发者网站的下载页面获取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
放到你的路径里。