У меня есть virtualenv с опцией --no-site-packages
. Я использую в нем скрининг. Scrapy использует libxml2 import libxml2
. Как установить libxml2 в virtualenv с помощью pip
или easy_install
?
Как установить libxml2 в virtualenv?
Ответ 1
pip install ftp://xmlsoft.org/libxml2/python/libxml2-python-2.6.9.tar.gz
Ответ 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, в то время еще не был доступен.