Como instalar libxml2 no virtualenv?
-
27-09-2019 - |
Pergunta
Eu tenho virtualenv com --no-site-packages
opção. estou a usar Scrapy iniciar. Usos de scrapy libxml2 por import libxml2
. Como instalar libxml2 no virtualenv usando pip
ou easy_install
?
Solução
Outras dicas
Libxml2 é uma biblioteca C não é um pacote Python, portanto você não pode usar o PIP para instalá -lo. Normalmente, ele já está instalado em quase todas as distroções do Linux por aí. Se você precisar instalá -lo, é apenas
sudo apt-get install libxml2
Se, por algum motivo, você precisar absolutamente ter uma instalação local, precisará pegar e instalar o pacote .deb ou o RPM. Salvo, você pode baixar a fonte e construí -la.
Se você está bem com o uso da cópia comum, mas não deseja ter/usr/local/no seu caminho, basta simplificá -la dentro do seu VirtualEnv.
Você pode encontrar mais informações (do que provavelmente queria) em http://xmlsoft.org/
O scrapy lista -o em seus requisitos:
- Python 2.5 ou acima
- Twisted 2.5.0 ou acima
- libxml2 2.6.28 ou superior (incluindo bidirpings em python)
- PyoPenssl - Somente se você quiser rastejar páginas seguras (https)
Antes de instalar LXML (no Debian):
apt-get install libxml2-dev libxslt1-dev pythonX.X-dev -y
Onde pythonX.X
é python2.7
ou python2.6
ou outra versão em python agulhada.
Após a instalação dos pacotes do sistema:
workon %environment_name%
pip install lxml --upgrade
Acabei de chegar a esse problema, com o Ubuntu 14.04 Kernel.
Eu já instalei LXML usando PIP.
Quando eu tento pip install lxml --upgrade
Dentro do VirtualEnv, sempre me dava um
X86_64-GNU-GCC Exit 1
Eu resolvi isso usando sudo apt-get install libssl-dev
.
Como alternativa, se você estiver no Windows, como eu suspeito de sua pergunta, você precisa obter o binário Libxml2- existem links no local da scrapy e, a partir de novembro de 2010, uma versão foi compilada que funcionará com tudo- - ou obtenha a versão atual do tronco/dev do SCRAPY, que funciona com o LXML2. Para o VirtualEnv, como não tenho certeza de como configurar com um binário extra, a última abordagem pode ser melhor. Eu adotei a última abordagem e funciona perfeitamente para mim até agora. Graças a Pablo Hoffman, o criador ultra-helposo de Scrapy (quando publiquei uma pergunta muito parecida com esta na lista de discussão do Scrapy, ele divulgou essa mudança para o Trunk quase no dia seguinte). NOTA: O binário libxml2 que funcionou com o Python 2.7 ainda não estava disponível naquele momento.
Se você instalou Python-Libxml2 Usando o apt-get (ou outro gerenciador de pacotes), você pode acessá-lo do VirtualEnv com o --system-site-packages
bandeira.
Ao criar seu virtualEnv, basta especificar este sinalizador, por exemplo:
virtualenv --system-site-packages env
Dessa forma, seu virtualENV herdará o pacote libxml2, que é instalado em amplo sistema.