如何在 Amazon EC2 上为 Python 3.4 安装 lxml

How to install lxml on Amazon EC2 for Python 3.4

在我最终通过从 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载 .whl 文件在我的计算机上安装了 lxml 之后,我认为我的 lxml 安装问题已经过去了。但是,显然我错了。在 EC2 平台上似乎并没有更容易。我几乎尝试了所有我能想到的命令——sudo pip3/pip3.4/pip-3.4/easy_install-3.4 lxml/lxml-3.5.0-cp34-none-win32。 whl/lxml-3.5.0-cp34-none-win32.whl, STATIC_DEPS=true sudo pip3/pip3.4/pip-3.4/easyinstall-3.4 安装lxml。我不断收到 Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed? 错误消息。 我也尝试安装这些库,但到目前为止还没有成功。非常感谢任何有关安装 lxml 或依赖库的帮助。

我最终能够通过执行以下过程安装 libxml2:

下载tar.gz。从 http://www.linuxfromscratch.org/blfs/view/7.7/general/libxml2.html 中获取文件,然后 运行 将其传输到 EC2 实例,并从文件所在的目录中 运行 tar -zxvf libxml2-2.9.2.tar.gz 。 运行sudo yum install libxml2-devel libxslt-devel python34-devel。 (我一开始无法安装这些包的原因是我使用了无处不在的“-dev”措辞,这在这个特定的设置中不起作用。) 来自 libxml2-2.9.2 文件夹(按照 http://www.linuxfromscratch.org/blfs/view/7.7/general/libxml2.html 中的说明)运行

    sed \
  -e /xmlInitializeCatalog/d \
  -e 's/((ent->checked =.*&&/(((ent->checked == 0) ||\
          ((ent->children == NULL) \&\& (ctxt->options \& XML_PARSE_NOENT))) \&\&/' \
  -i parser.c

,

./configure --prefix=/usr --disable-static --with-history --with-python=/usr/bin/python3 && make

,以及

make install

然后。 . . ,当我终于 运行 sudo easy_install-3.4 lxml,你猜怎么着。 . . ;是的,实例 运行 内存不足。因此,我必须应用 How do you add swap to an EC2 instance? 中的以下修复程序:

sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo /sbin/swapon /var/swap.1

之后,使用sudo easy_install-3.4 lxml安装花了很长时间,但成功了。