Как установить libxml2 в virtualenv? - PullRequest
12 голосов
/ 04 октября 2010

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

Ответы [ 6 ]

20 голосов
/ 18 мая 2011
3 голосов
/ 28 августа 2014

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

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

Где pythonX.X - python2.7 или python2.6 или другая версия с нужным питоном.

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

workon %environment_name%
pip install lxml --upgrade
3 голосов
/ 15 октября 2010

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

sudo apt-get install libxml2

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

Если вы хорошо используете обычную копию, но не хотите иметь / usr / local / на своем пути, тогда просто вставьте ссылку в ваш virtualenv.

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

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

  • Python 2.5 или выше
  • Twisted 2.5.0 или выше
  • libxml2 2.6.28 или выше (включая ставки Python)
  • pyopenssl - только если вы хотите сканировать защищенные (HTTPS) страницы
2 голосов
/ 05 января 2016

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

Я уже установил lxml, используя pip.

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

x86_64-gnu-gcc exit 1

Я решил этоиспользуя sudo apt-get install libssl-dev.

1 голос
/ 04 ноября 2010

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

0 голосов
/ 05 апреля 2018

Если вы установили python-libxml2 с помощью apt-get (или другого менеджера пакетов), вы можете получить к нему доступ через virtualenv с флагом --system-site-packages.

При создании virtualenv просто укажитеэтот флаг, например:

virtualenv --system-site-packages env

Таким образом ваш virtualenv унаследует пакет libxml2, который установлен во всей системе.

...