3

我的服务器上有 Centos 6,我一直在尝试为它安装一些包(模块)。我只是将 Windows 上的那些带到了 ftp 客户端/usr/lib/python2.6/site-packages,但是当我运行其中一个脚本时 - 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 和 Linux Ubuntu 10.04 上运行良好。

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

@根:

>>> 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/包括/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-i686-2.6/src/lxml/lxml.etree.o

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

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

4

2 回答 2

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
于 2014-03-21T10:01:40.827 回答
1

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

最好的办法是按照安装说明进行lxml操作,即安装libxslt-devellibxml2-devel包并使用自己手动pip编译或编译。lxml如果您自己编译它,那么网站上有一个包含一些有用信息和更多信息的先前问题lxml


安装

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

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

从那里,只需运行:

pip install lxml

它应该安装得很好。

如果您想跳过 pip(尽管最终,pip 使管理依赖项变得容易得多,因此值得一试)

  1. 在PyPI上找到合适版本的 lxml
  2. 从下载地址下载源码(应该是tar.gz文件)
  3. 使用解压 tar 存档tar -xzf lxml-<version>.tar.gz
  4. cd进入提取的目录并运行python setup.py install

请注意,如果您的安装只能由 root 修改,则可能需要以 root 身份运行上述任何命令。安装命令是python distribute_setup.py和。easy_install pippython setup.py install

于 2013-01-25T11:25:33.293 回答