CentOS 6.3上的Python lxml etree

CentOS 6.3上的Python lxml etree,python,centos,lxml,centos6,Python,Centos,Lxml,Centos6,我的服务器上有Centos 6,我一直在尝试为它安装一些软件包(模块)。我刚刚将windows上的文件带到ftp客户机的/usr/lib/python2.6/site包中,但当我运行脚本时,其中一个文件-lxml给了我一个错误: File "plugins/util/http.py", line 12, in <module> from lxml import etree, html File "/usr/lib/python2.6/site-packages/lxml/

我的服务器上有Centos 6,我一直在尝试为它安装一些软件包(模块)。我刚刚将windows上的文件带到ftp客户机的
/usr/lib/python2.6/site包中,但当我运行脚本时,其中一个文件-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
文件“plugins/util/http.py”,第12行,在
从lxml导入etree、html
文件“/usr/lib/python2.6/site packages/lxml/html/_init__.py”,第12行,在
ImportError:无法导入名称etree
同样的代码在Windows7和LinuxUbuntu10.04上运行得非常好

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

@根目录:

>>> import lxml;print lxml
<module 'lxml' from '/usr/lib/python2.6/site-packages/lxml/__init__.pyc'>
>>>
>导入lxml;打印lxml
>>>
@免疫球蛋白

gcc-pthread-fno严格别名-O2-g-pipe-Wall-Wp-D_-FORTIFY_SOURCE=2-feexceptions-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-feexceptions-fstack protector-param=ssp buffer size=4-m32-march=i686-mtune=atom-fasynchronous diswind tables-D_GNU SOURCE-fPIC-fwrapv-fPIC-I/usr/include/libxml2-I/tmp/pip build/lxml/src/lxml/includes-I/usr/python2.6-c-src/lxml/lxml/etree.c-o build/temp-linux-i686-2.6/src/etro/lxml

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


错误:命令“gcc”失败,退出状态为1

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

最好按照说明进行操作,即安装
libxslt-devel
libxml2-devel
软件包,并使用
pip
编译
lxml
,或者自己手动编译。如果你自己去编译,可以在
lxml
网站上找到一些有用的信息和进一步的信息


安装

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

从那里开始,只需运行:

pip install lxml
它应该安装得很好

如果您想跳过pip(不过,最终,pip会使管理依赖项变得更容易,因此值得一做)

  • 在上找到lxml的适当版本
  • 从下载URL下载源代码(应该是
    tar.gz
    文件)
  • 使用
    tar-xzf lxml-.tar.gz
  • cd
    到提取的目录中,然后运行
    python setup.py install
  • 请注意,如果您的安装只能由root用户修改,则可能需要以root用户身份运行上述任何命令。安装命令有
    python distribute\u setup.py
    easy\u install pip
    python setup.py install
    或从EPEL安装(最简单的方法):


    什么是
    导入lxml;打印lxml
    print?@root,编辑了我的第一篇文章。当您尝试从解释器导入etree时,是否会出现相同的错误?或者,如果您在脚本的开头添加了在interpeter中使用的同一行,它是否会打印相同的结果?@root,是的,它仍然会显示上面的错误。“已安装并最新版本的程序包libxml2-devel-2.7.6-8.el6_3.4.i686”+“已安装并最新版本的程序包libxslt-devel-1.1.26-2.el6_3.1.i686”好的,我现在要做的就是用pip或我自己编译它?你能告诉我如何自己编译它吗,从来没有处理过这样的事情..谢谢你提供的信息,我用pip做的,因为它看起来更简单,但我仍然有一些错误。我编辑了我的第一篇文章,因为它使我的评论太长了。我想安装差不多完成了,我做了所有应该做的事情。
    pip install lxml
    
    # 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