Frage

Ich habe virtualenv mit --no-site-packages Option. Ich verwende scrapy in ihm. Scrapy verwendet libxml2 von import libxml2. Wie installiert man libxml2 in virtualenv pip oder easy_install mit?

War es hilfreich?

Andere Tipps

libxml2 ist eine C-Bibliothek nicht ein Python-Paket, so dass Sie nicht Pip es installieren können. Normalerweise ist es bereits auf fast installiert dort jeder Linux-Distribution aus. Wenn Sie es installieren müssen es nur

sudo apt-get install libxml2

Wenn aus irgendeinem Grund müssen Sie unbedingt eine lokale haben installieren Sie greifen benötigen und das .deb-Paket oder das RPM zu installieren. Barring, dass Sie den Quellcode herunterladen und bauen es.

Wenn Sie in Ordnung sind mit der gemeinsamen Kopie verwenden wollen aber nicht, / usr / local / in Ihrem Pfad haben, dann Symlink es nur in Ihrem virtualenv.

Sie können mehr Informationen finden (als Sie wahrscheinlich wollte) unter http://xmlsoft.org/

Scrapy Listen sie in ihren Anforderungen:

  • Python 2.5 oder höher
  • Verdrehte 2.5.0 oder höher
  • libxml2 2.6.28 oder höher (einschließlich Python bidings)
  • pyopenssl - nur, wenn Sie sicher (HTTPS) Seiten
  • durchsuchen wollen

Vor lxml installieren (auf Debian):

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

Wo pythonX.X python2.7 oder python2.6 oder andere Nadelvlies-Python-Version ist.

Nach dem Systempaket installieren:

workon %environment_name%
pip install lxml --upgrade

Ich bin gerade auf dieses Problem mit Ubuntu 14.04-Kernel.

I lxml mit pip bereits installiert.

Als ich nach pip install lxml --upgrade innerhalb des virtualenv versuchen, es gab mir immer ein

  

x86_64-gnu-gcc exit 1

Ich löste dies mit sudo apt-get install libssl-dev.

Wenn Sie alternativ an Fenstern sind, wie ich aus Ihrer Frage vermuten, müssen Sie entweder bekommen die libxml2 binary-- gibt es Links auf der scrapy Website und ab November 2010, eine Version kompiliert wurde, dass Wille Arbeit mit everything-- oder die aktuellen Stamm / dev Version von scrapy erhalten, die mit lxml2 funktioniert. Für virtualenv, da ich nicht sicher bin, wie die Einrichtung mit einem zusätzlichen binären könnte der letztere Ansatz am besten. Ich habe den zweiten Ansatz angenommen und es funktioniert einwandfrei für mich so weit. Dank Pablo Hoffman der ultra-hilfreich Schöpfer Scrapy (wenn ich eine Frage viel wie dieser auf Scrapy Mailingliste gepostet, veröffentlichte er diese Änderung Stamm fast am nächsten Tag). Hinweis: libxml2 Binärdatei, die mit Python gearbeitet 2.7 war noch nicht verfügbar zu dieser Zeit.

Wenn Sie installiert python-libxml2 mit apt-get (oder einem anderen Paket-Manager) Sie es von virtualenv mit der --system-site-packages Flagge zugreifen können.

Wenn Ihre virtualenv Erstellen gerade diesen Flag angeben, z:

virtualenv --system-site-packages env

Auf diese Weise Ihre virtualenv das libxml2 Paket erben, die systemweit installiert ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top