Как установить lxml в Ubuntu

429

Мне сложно установить lxml с easy_install на Ubuntu 11.

Когда я печатаю $ easy_install lxml, я получаю:

Searching for lxml
Reading http://pypi.python.org/simple/lxml/
Reading http://codespeak.net/lxml
Best match: lxml 2.3
Downloading http://lxml.de/files/lxml-2.3.tgz
Processing lxml-2.3.tgz
Running lxml-2.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-7UdQOZ/lxml-2.3/egg-dist-tmp-GacQGy
Building lxml version 2.3.
Building without Cython.
ERROR: /bin/sh: xslt-config: not found

** make sure the development packages of libxml2 and libxslt are installed **

Using build configuration of libxslt 
In file included from src/lxml/lxml.etree.c:227:0:
src/lxml/etree_defs.h:9:31: fatal error: libxml/xmlversion.h: No such file or directory
compilation terminated.

Кажется, что libxslt или libxml2 не установлен. Я пробовал следовать инструкциям в http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.php и http://www.techsww.com/tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux.php без успеха.

Если я попробую wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.6.27.tar.gz, я получаю

<successful connection info>
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /libxml2 ... done.
==> SIZE libxml2-sources-2.6.27.tar.gz ... done.
==> PASV ... done.    ==> RETR libxml2-sources-2.6.27.tar.gz ... 
No such file `libxml2-sources-2.6.27.tar.gz'.

Если я сначала попробую другой, я перейду к ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2, и это в конечном итоге закончится с:

checking for libxml libraries >= 2.6.27... configure: error: Could not find libxml2 anywhere, check ftp://xmlsoft.org/.

Я пробовал обе версии 2.6.27 и 2.6.29 of libxml2 без разницы.

Не оставляя камня на камне, я успешно выполнил sudo apt-get install libxml2-dev, но это ничего не меняет.

Теги:
lxml
libxml2
easy-install

10 ответов

928
Лучший ответ

Поскольку вы работаете в Ubuntu, не беспокойтесь об этих исходных пакетах. Просто установите эти пакеты разработки, используя apt-get.

apt-get install libxml2-dev libxslt1-dev python-dev

Если вы довольны, возможно, более старой версией lxml, хотя вы можете попробовать

apt-get install python-lxml

и покончить с этим.:)

  • 50
    этот ответ должен быть добавлен в инструкции по установке lxml :) спасибо +1
  • 1
    Этот ответ не отвечает на вопрос в заголовке 'with easy_install'
Показать ещё 14 комментариев
110

Мне также пришлось установить lib32z1-dev перед компиляцией lxml (Ubuntu 13.04 x64).

sudo apt-get install lib32z1-dev

Или все необходимые пакеты вместе:

sudo apt-get install libxml2-dev libxslt-dev python-dev lib32z1-dev
  • 9
    +1. Этот пакет был необходим даже после установки всех других упомянутых пакетов.
  • 1
    да мне это тоже нужно 13.04
Показать ещё 4 комментария
41

Как @Pepijn прокомментировал ответ @Druska, на ubuntu 13.04 x64 нет необходимости использовать lib32z1-dev, zlib1g-dev достаточно:

sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev
  • 1
    работал хорошо для меня на Ubuntu 14.04 тоже
  • 0
    этот работал для меня на монетном дворе 18 (32 бита)
15

Я установил lxml с pip в Vagrant, используя Ubuntu 14.04 и имел ту же проблему. Несмотря на то, что все требования, которые были установлены, я получал одну и ту же ошибку снова и снова. Оказалось, что моя виртуальная машина по умолчанию имела небольшую память. С 1024 МБ все работает отлично.

Добавьте это в свой VagrantFile, и lxml должен правильно скомпилировать/установить:

config.vm.provider "virtualbox" do |vb|
  vb.memory = 1024
end

Благодаря шестихоббиту для подсказки (см.: не удается установить lxml на Ubuntu 12.04).

  • 0
    Это сработало для меня. Благодарю. Он сказал, что компиляция не удалась со статусом 4, в случае, если это помогает кому-либо еще.
  • 0
    этот ответ не имеет ничего общего с вопросом ОП
10

Для Ubuntu 14.04

sudo apt-get install python-lxml

работал у меня.

8

Шаг 1

Установите последние обновления python с помощью этой команды.

sudo apt-get install python-dev

Шаг 2

Добавить первую зависимость libxml2 версия 2.7.0 или новее

sudo apt-get install libxml2-dev

Шаг 3

Добавить вторую зависимость libxslt версия 1.1.23 или новее

sudo apt-get install libxslt1-dev

Шаг 4

Сначала установите pip инструмент управления пакетами. и запустите эту команду.

pip install lxml

Если у вас есть какие-либо сомнения Нажмите здесь

8

После установки пакетов, упомянутых в AKX, у меня все еще была та же проблема. Разрешил его с помощью

apt-get install python-dev
6

Для Ubuntu 12.04.3 LTS (Precise Pangolin) мне пришлось делать:

apt-get install libxml2-dev libxslt1-dev

(Обратите внимание на "1" в libxslt1-dev)

Затем я просто установил lxml с помощью pip/easy_install.

1

Многие ответы здесь довольно старые,
благодаря указателю из @Simplans (https://stackoverflow.com/questions/6504810/how-to-install-lxml-on-ubuntu) и домашней странице...

Что сработало для меня (Ubuntu Bionic):

sudo apt-get install python3-lxml  

(+ sudo apt-get install libxml2-dev libxslt1-dev Я установил перед этим, но не уверен, что требование все еще выполняется)

  • 0
    Да, старые ответы на старый вопрос. Я имею в виду, я был на Ubuntu 11, когда я спросил!
  • 0
    да, я сомневаюсь, что вы даже сможете спросить об этом здесь больше (будут перенесены в Ubuntu и т. д.), но это все еще захватывает множество веб-поиска. И сомневаюсь, что кто-то все еще использует Ubuntu 11 :). А затем, что старые версии Linux и несовместимость пакетов, надеюсь, что однажды улучшится.
Показать ещё 1 комментарий
0

Сначала установите пакет Ubuntu python-lxml и его зависимости:

sudo apt-get install python-lxml

Затем используйте pip для обновления до последней версии lxml для Python:

pip install lxml
  • 0
    Ответы только по коду неодобрительны. Добавить объяснение
  • 0
    Хотя этот ответ может быть правильным, пожалуйста, добавьте некоторые пояснения. Передача базовой логики важнее, чем просто предоставление кода, потому что это помогает ОП и другим читателям самим решить эту и подобные проблемы.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню