Question

Je virtualenv avec l'option --no-site-packages. J'utilise scrapy en elle. Scrapy utilise libxml2 par import libxml2. Comment installer libxml2 dans virtualenv en utilisant pip ou easy_install?

Était-ce utile?

Autres conseils

libxml2 est une bibliothèque C pas un paquet python de sorte que vous ne pouvez pas utiliser Pip pour l'installer. Normalement, il est déjà installé sur presque tous les distro Linux là-bas. Si vous avez besoin de l'installer, il est juste

sudo apt-get install libxml2

Si, pour une raison quelconque vous absolument besoin d'avoir un local, vous installer devrez récupérer et installer le paquet .deb ou le RPM. Sauf que vous pouvez télécharger la source et le construire.

Si vous êtes bien avec l'aide de la copie commune, mais ne veulent pas avoir / / usr / local dans votre chemin, puis juste un lien symbolique au sein de votre virtualenv.

Vous pouvez trouver plus d'informations (que vous vouliez probablement) http://xmlsoft.org/

listes Scrapy dans leurs exigences:

  • Python 2.5 ou au-dessus
  • Twisted 2.5.0 ou au-dessus
  • libxml2 2.6.28 ou au-dessus (y compris bidings python)
  • pyopenssl - que si vous souhaitez analyser les pages sécurisées (HTTPS)

Avant d'installer lxml (sur Debian):

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

pythonX.X est python2.7 ou python2.6 ou toute autre version python aiguilleté.

Après l'installation des paquets du système:

workon %environment_name%
pip install lxml --upgrade

Je viens à ce problème, avec le noyau Ubuntu 14.04.

Je l'ai déjà installé à l'aide lxml pépin.

Lorsque je tente de pip install lxml --upgrade à l'intérieur du virtualenv, il m'a toujours donné un

  

sortie x86_64-gnu-gcc 1

Je résolu cela en utilisant sudo apt-get install libssl-dev.

Sinon, si vous êtes sur Windows, comme je le soupçonne de votre question, vous devez obtenir soit la libxml2 binary-- il y a des liens sur le site scrapy, et à partir de Nov 2010, une version a été compilée qui fonctionnera avec everything-- ou obtenir la version actuelle tronc / dev de scrapy, qui travaille avec lxml2. Pour virtualenv, puisque je ne suis pas sûr comment configurer avec un binaire supplémentaire, cette dernière approche pourrait être préférable. J'ai adopté cette dernière approche et il fonctionne parfaitement pour moi jusqu'à présent. Merci à Pablo Hoffman le créateur ultra-utile de Scrapy (quand je posté une question beaucoup comme celui-ci sur la liste de diffusion de Scrapy, il sort ce changement de tronc presque le lendemain). Note: binaire libxml2 qui a travaillé avec Python 2.7 était pas encore disponible à ce moment-là.

Si vous avez installé python-libxml2 en utilisant apt-get (ou tout autre gestionnaire de paquets), vous pouvez y accéder à partir virtualenv avec le drapeau de --system-site-packages.

Lors de la création de votre virtualenv il suffit de spécifier ce drapeau, par exemple:

virtualenv --system-site-packages env

De cette façon, votre virtualenv héritera du paquet libxml2 qui est installé tout le système.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top