如何在virtualenv中安装libxml2?

时间:2010-10-04 15:03:09

标签: virtualenv easy-install pip scrapy

我有 virtualenv --no-site-packages选项。我正在使用 scrapy 。 Scrapy使用import libxml2 libxml2 。如何使用pipeasy_install

在virtualenv中安装libxml2

6 个答案:

答案 0 :(得分:20)

答案 1 :(得分:3)

libxml2是一个C库而不是python包,所以你不能使用Pip来安装它。通常它几乎已经安装在每个Linux发行版上。如果你需要安装它只是

sudo apt-get install libxml2

如果由于某种原因您绝对需要本地安装,则需要获取并安装.deb软件包或RPM。除非您可以下载源代码并构建它。

如果您使用普通副本但不想在路径中使用/ usr / local /,那么只需在您的virtualenv中对其进行符号链接。

您可以在http://xmlsoft.org/

找到更多信息(比您可能想要的更多)

Scrapy在他们的要求中列出了它:

  • Python 2.5或以上
  • Twisted 2.5.0或以上
  • libxml2 2.6.28或更高版本(包括Python出价)
  • pyopenssl - 仅当您要抓取安全(HTTPS)页面时

答案 2 :(得分:3)

安装lxml之前(在Debian上):

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

其中pythonX.Xpython2.7python2.6或其他针对python的版本。

安装系统软件包后:

workon %environment_name%
pip install lxml --upgrade

答案 3 :(得分:2)

我刚刚使用Ubuntu 14.04内核来解决这个问题。

我已经使用pip安装了lxml。

当我尝试在virtualenv中pip install lxml --upgrade时,它总是给我一个

  

x86_64-gnu-gcc exit 1

我使用sudo apt-get install libssl-dev解决了这个问题。

答案 4 :(得分:1)

或者,如果你在Windows上,正如我怀疑你的问题,你需要获得libxml2二进制文件 - scrapy网站上有链接,截至2010年11月,已经编译了一个可以工作的版本与一切 - 或获得scrapy的当前trunk / dev版本,适用于lxml2。对于virtualenv,因为我不确定如何设置额外的二进制文件,后一种方法可能是最好的。我采用了后一种方法,到目前为止它对我来说完美无缺。感谢Pablo Hoffman是Scrapy的超级有用的创造者(当我在Scrapy的邮件列表上发布了一个类似于这个的问题时,他几乎在第二天就将这个更改发布到了trunk)。注意:当时还没有使用与python 2.7一起使用的libxml2二进制文件。

答案 5 :(得分:0)

如果使用apt-get(或其他包管理器)安装 python-libxml2 ,则可以使用virtualenv --system-site-packages env 标志从virtualenv访问它。

创建virtualenv时,只需指定此标志,例如:

fact:
{ 
    "_id" : ObjectId("5ab70427fc08b4855d3c4ea2"), 
    "game_id" : NumberInt(1), 
    "time_id" : NumberInt(222), 
    "average_score" : NumberInt(8), 
    "count_editor_choice" : NumberInt(0)
}

game_dimension:
{ 
    "_id" : ObjectId("5ab703dcfc08b4855d3c0666"), 
    "game_id" : NumberInt(1), 
    "title" : "#IDARB", 
    "genre" : "Party", 
    "platform" : "Xbox One"
}

这样你的virtualenv将继承系统安装的libxml2包。