Подтвердить что ты не робот

Как установить libxml2 в virtualenv?

У меня есть virtualenv с опцией --no-site-packages. Я использую в нем скрининг. Scrapy использует libxml2 import libxml2. Как установить libxml2 в virtualenv с помощью pip или easy_install?

4b9b3361

Ответ 2

libxml2 - это библиотека C, а не пакет python, поэтому вы не можете использовать Pip для ее установки. Обычно он уже установлен почти на каждом дистрибутиве Linux. Если вам нужно установить его, просто

sudo apt-get install libxml2

Если по какой-то причине вам абсолютно необходимо иметь локальную установку, вам нужно будет захватить и установить пакет .deb или RPM. Запрет на то, что вы можете загрузить исходный код и создать его.

Если вам будет хорошо с использованием общей копии, но вы не хотите иметь/usr/local/в своем пути, а затем просто привяжите ее в своем виртуальном пространстве.

Вы можете найти больше информации (чем вы, вероятно, хотели) на http://xmlsoft.org/

Scrapy перечисляет его в своих требованиях:

  • Python 2.5 или выше
  • Twisted 2.5.0 или выше
  • libxml2 2.6.28 или выше (включая ставки Python)
  • pyopenssl - только если вы хотите обходить безопасные страницы (HTTPS)

Ответ 3

Перед установкой lxml (на Debian):

apt-get install libxml2-dev libxslt1-dev pythonX.X-dev -y

Где pythonX.X есть python2.7 или python2.6 или другая игольная версия python.

После установки системных пакетов:

workon %environment_name%
pip install lxml --upgrade

Ответ 4

Я только что пришел к этой проблеме с ядром Ubuntu 14.04.

Я уже установил lxml с помощью pip.

Когда я пытаюсь pip install lxml --upgrade внутри virtualenv, он всегда давал мне

x86_64-gnu-gcc exit 1

Я решил это с помощью sudo apt-get install libssl-dev.

Ответ 5

В качестве альтернативы, если вы находитесь на окнах, как я подозреваю в вашем вопросе, вам нужно либо получить двоичный файл libxml2 - есть ссылки на сайте scrapy, а с ноября 2010 года была скомпилирована версия, которая будет работать со всем - или получить текущую версию trunk/dev scrapy, которая работает с lxml2. Для virtualenv, так как я не уверен, как настроить дополнительный бинар, последний подход может быть лучшим. Я принял последний подход, и он работает безупречно для меня до сих пор. Благодаря Пабло Хоффману, ультра-полезному создателю Scrapy (когда я опубликовал вопрос, похожий на этот, на список рассылки Scrapy, он опубликовал это изменение в багажнике почти на следующий день). Примечание: двоичный файл libxml2, который работал с python 2.7, в то время еще не был доступен.