Не удалось установить lxml версии 3.3.5 в Ubuntu

Я использую пакет python openpyxl в своем приложении. Я получаю следующее сообщение при использовании того же самого.

/usr/local/lib/python2.7/dist-packages/openpyxl/init.py:31: UserWarning: установленная версия lxml слишком старая для использования с openpyxl

warnings.warn("Установленная версия lxml слишком старая для использования с openpyxl")

Openpyxl требует lxml версии 3.2.5 или выше, а на моей машине версия 3.2.0. Когда я пытаюсь обновить lxml до последней версии, т.е. 3.3.5, процесс прерывается следующим сообщением.

i686-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security build/temp.linux-i686-2.7/src/lxml/lxml.etree.o -lxslt -lexslt -lxml2 -lz -lm -o build/lib.linux-i686-2.7/lxml/etree.so

/usr/bin/ld: cannot find -lz

collect2: error: ld returned 1 exit status

error: command 'i686-linux-gnu-gcc' failed with exit status 1

----------------------------------------

  Rolling back uninstall of lxml

  Replacing /usr/lib/python2.7/dist-packages/lxml
  Replacing /usr/lib/python2.7/dist-packages/lxml-3.2.0.egg-info
Cleaning up...

  Removing temporary dir /tmp/pip_build_root...
Command /usr/bin/python -c "import setuptools;__file__='/tmp/pip_build_root/lxml/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-ov0PUy-record/install-record.txt --single-version-externally-managed failed with error code 1 in /tmp/pip_build_root/lxml

Мне нужна помощь в решении вопроса.

PS: - Я уже установил на свою машину зависимые от lxml пакеты python-dev, libxml2-dev и libxslt1-dev.


person shaunthomas999    schedule 09.05.2014    source источник
comment
Обратите внимание, что lxml на самом деле требуется только для тестов, но я думаю, нам нужно проверить, лучше ли он обрабатывается. Я бы посоветовал всегда использовать virtualenv, чтобы вы сами решали, хотите ли вы lxml или нет. В настоящее время похоже, что lxml медленнее читает файлы.   -  person Charlie Clark    schedule 12.05.2014


Ответы (2)


Я думаю, что вам не хватает zlib1g-dev.

sudo apt-get install zlib1g-dev

Выполнение вышеуказанной команды решит проблему.

person Midnighter    schedule 09.05.2014
comment
Спасибо за ответ. Ваша рекомендация решила проблему. - person shaunthomas999; 10.05.2014

В Ubuntu (и других производных от Debian), прежде чем создавать какое-либо программное обеспечение, убедитесь, что установлены его сборки. Используя ваш пример, запустите это:

sudo apt-get build-dep python-lxml

Для этого, вероятно, потребуется целый набор пакетов, одним из которых является zlib1g-dev, как упоминалось.

person tshepang    schedule 09.05.2014