CentOS 6.3上的Python lxml etree

时间:2013-01-25 09:21:41

标签: python centos lxml centos6

我的服务器上有Centos 6,而且我一直在尝试为它安装一些软件包(模块)。我只是把我的窗口上的那些带到/usr/lib/python2.6/site-packages的ftp客户端,但是当我运行我的脚本时,其中一个--lxml给了我一个错误:

File "plugins/util/http.py", line 12, in <module>
    from lxml import etree, html
  File "/usr/lib/python2.6/site-packages/lxml/html/__init__.py", line 12, in <module>
ImportError: cannot import name etree

相同的代码在Windows 7&amp; Linux Ubuntu 10.04。

有谁知道它为什么会返回此错误?我没有修改任何东西,只是将模块从windows移到我的vps上的python2.6目录。

@root:

>>> import lxml;print lxml
<module 'lxml' from '/usr/lib/python2.6/site-packages/lxml/__init__.pyc'>
>>>

@ig

  

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector -param = ssp-buffer-size = 4 -m32 -march = i686 -mtune = atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector -param = ssp-buffer-size = 4 -m32 -march = i686 -mtune = atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I / usr / include / libxml2 -I / tmp / pip-build / lxml / src / lxml / includes -I /usr/include/python2.6 -c src / lxml / lxml.etree.c -o build / temp.linux-i686-2.6 / src / lxml / lxml.etree.o

无法执行gcc:没有这样的文件或目录

错误:命令&#39; gcc&#39;退出状态1失败

2 个答案:

答案 0 :(得分:6)

或者从EPEL(最简单的方式)安装它:

# install EPEL if you don't have it yet
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# instal python-lxml
sudo yum -y install python-lxml

答案 1 :(得分:1)

lxml不是纯Python模块。它主要用Cython编写,因此编译为本机代码。 Windows计算机中的二进制文件与CentOS(以及一般的Linux)不兼容。

最好的办法是按照on installing lxml的说明操作,即安装libxslt-devellibxml2-devel个软件包并使用pip编译lxml或编译它手动自己。如果您自己编译,there's a previous question并在lxml网站上提供一些有用的信息和更多信息。


<强>安装

我没有CentOS机器来测试它。最简单的安装方法是通过ip,它应该通过Yum作为一个包提供。如果没有,您可以使用以下命令安装它(来自distribute的文档,这是pip的先决条件):

curl -O http://python-distribute.org/distribute_setup.py
python distribute_setup.py
easy_install pip

从那里开始运行:

pip install lxml

它应该安装得很好。

如果你想跳过pip(尽管最终,pip使得管理依赖关系变得更加容易,所以非常值得做)

  1. PyPI
  2. 上找到合适的lxml版本
  3. 从下载网址下载源代码(应该是tar.gz文件)
  4. 使用tar -xzf lxml-<version>.tar.gz
  5. 解压缩tar档案
  6. cd进入解压缩的目录并运行python setup.py install
  7. 请注意,如果您的安装只能由root修改,则上述任何命令都可能需要以root用户身份运行。安装命令为python distribute_setup.pyeasy_install pippython setup.py install