Pregunta

Tengo virtualenv con la opción --no-site-packages. Estoy usando scrapy en ella. usos Scrapy libxml2 por import libxml2. Como instalar libxml2 en virtualenv usando pip o easy_install?

Otros consejos

libxml2 no es una biblioteca C de un paquete python por lo que no puede utilizar la pipa para instalarlo. Normalmente ya está instalado en casi cada distribución Linux por ahí. Si necesita instalarlo es sólo

sudo apt-get install libxml2

Si por alguna razón es absolutamente necesario tener una instalación local tendrá que agarrar e instalar el paquete .deb o el RPM. Salvo que se puede descargar el código fuente y construirlo.

Si usted está muy bien con el uso de la copia común, pero no quieren tener / usr / local / en su camino, entonces simplemente enlazar simbólicamente dentro de su virtualenv.

Se puede encontrar más información (lo que probablemente quería) en http://xmlsoft.org/

Scrapy listas en sus requisitos:

  • Python 2,5 o por encima
  • Twisted 2.5.0 o superior
  • libxml2 2.6.28 o superior (incluyendo bidings Python)
  • pyOpenSSL - sólo si se va a rastrear las páginas seguras (HTTPS)

Antes de instalar lxml (en Debian):

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

Donde pythonX.X es python2.7 o python2.6 o otra versión pitón agujado.

Después de instalar los paquetes del sistema:

workon %environment_name%
pip install lxml --upgrade

Acabo de llegar a este problema, con Ubuntu 14.04 kernel.

Ya instalado lxml usando PIP.

Cuando intento pip install lxml --upgrade dentro del virtualenv, siempre me dio un

  

x86_64-gnu-gcc salida 1

Me solucionó este usando sudo apt-get install libssl-dev.

Por otra parte, si usted está en ventanas, como sospecho de su pregunta, es necesario o bien obtener la libxml2 binary-- hay enlaces en el sitio scrapy, ya partir de nov 2010, una versión ha sido compilada que el trabajo voluntad con todo-- o conseguir la versión del tronco / dev actual de scrapy, que trabaja con lxml2. Para virtualenv, ya que no estoy seguro de cómo configurar con un binario adicional, este último enfoque podría ser mejor. He adoptado este último enfoque y funciona perfectamente para mí hasta ahora. Gracias a Pablo Hoffman el creador de ultra-útil de Scrapy (cuando me envió una pregunta muy similar a éste en la lista de correo de Scrapy, lanzó este cambio en el tronco casi al día siguiente). Nota: binario libxml2 que trabajó con Python 2.7 aún no estaba disponible en ese momento.

Si ha instalado python-libxml2 usando apt-get (u otro gestor de paquetes) se puede acceder a él desde virtualenv con la bandera --system-site-packages.

Al crear su virtualenv acaba de especificar esta bandera, por ejemplo:

virtualenv --system-site-packages env

De esta manera su virtualenv heredará el paquete libxml2 que está instalado el sistema de ancho.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top