Как установить lxml в Ubuntu
У меня проблемы с установкой 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
из libxml2
без разницы.
Не оставляя камня на камне, я успешно сделал sudo apt-get install libxml2-dev
, но это ничего не меняет.
12 ответов
Поскольку вы работаете в Ubuntu, не беспокойтесь об этих исходных пакетах. Просто установите эти пакеты разработки, используя apt-get.
apt-get install libxml2-dev libxslt1-dev python-dev
Если вы довольны возможно более старой версией lxml, попробуйте
apt-get install python-lxml
и покончим с этим.:)
Мне также пришлось установить 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
Как @Pepijn прокомментировал ответ @Druska, в Ubuntu 13.04 x64 нет необходимости использовать lib32z1-dev, достаточно zlib1g-dev:
sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev
Я установил lxml с pip в Vagrant, используя Ubuntu 14.04, и у меня возникла та же проблема. Несмотря на то, что все требования были установлены, я получал одну и ту же ошибку снова и снова. Оказалось, у моей ВМ было мало памяти по умолчанию. С 1024 МБ все работает отлично.
Добавьте это к вашему VagrantFile, и lxml должен правильно скомпилировать / установить:
config.vm.provider "virtualbox" do |vb|
vb.memory = 1024
end
Спасибо Sixhobbit за подсказку (см.: не могу установить lxml в Ubuntu 12.04).
Шаг 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
Если у вас есть какие-либо сомнения, нажмите здесь
Для Ubuntu 14.04
sudo apt-get install python-lxml
работал на меня.
После установки пакетов, упомянутых AKX, у меня осталась та же проблема. Решил это с
apt-get install python-dev
Для Ubuntu 12.04.3 LTS (Precise Pangolin) мне пришлось сделать:
apt-get install libxml2-dev libxslt1-dev
(Обратите внимание на "1" в libxslt1-dev)
Тогда я только что установил lxml с помощью pip/easy_install.
Начиная с Ubuntu 18.4 (Bionic Beaver) рекомендуется использовать apt вместо apt-get, поскольку он имеет гораздо лучшую структурную форму.
sudo apt install libxml2-dev libxslt1-dev python-dev
Если вас устраивает возможно более старая версия lxml
в целом, вы можете попробовать
sudo apt install python-lxml
Многие ответы здесь довольно старые,
благодаря указателю из @Simplans ( /questions/35077619/kak-ustanovit-lxml-v-ubuntu/35077645#35077645) и домашней странице...
Что сработало для меня (Ubuntu Bionic):
sudo apt-get install python3-lxml
(+ sudo apt-get install libxml2-dev libxslt1-dev
Я установил перед этим, но не уверен, что это требование до сих пор)
Вы можете установить lxml в Ubuntu, выполнив следующие действия:
Откройте терминал в вашей системе Ubuntu.
Обновите список пакетов, выполнив следующую команду:
sudo apt-get update
Установите необходимые зависимости, выполнив следующую команду:
sudo apt-get install libxml2-dev libxslt-dev python-dev
Установите lxml, выполнив следующую команду:
sudo pip install lxml
Если у вас не установлен pip, вы можете установить его, выполнив следующую команду:
sudo apt-get install python-pip
Убедитесь, что lxml установлен, выполнив следующую команду:
python -c "import lxml; print(lxml.__version__)"
Это должно вывести номер версии lxml, который вы только что установили.
Вот и все!
Сначала установите Ubuntu python-lxml
пакет и его зависимости:
sudo apt-get install python-lxml
Тогда используйте pip
обновить до последней версии lxml для Python:
pip install lxml