我有 virtualenv 和--no-site-packages
选项。我正在使用 scrapy 。 Scrapy使用import libxml2
的 libxml2 。如何使用pip
或easy_install
?
答案 0 :(得分:20)
答案 1 :(得分:3)
libxml2是一个C库而不是python包,所以你不能使用Pip来安装它。通常它几乎已经安装在每个Linux发行版上。如果你需要安装它只是
sudo apt-get install libxml2
如果由于某种原因您绝对需要本地安装,则需要获取并安装.deb软件包或RPM。除非您可以下载源代码并构建它。
如果您使用普通副本但不想在路径中使用/ usr / local /,那么只需在您的virtualenv中对其进行符号链接。
找到更多信息(比您可能想要的更多)Scrapy在他们的要求中列出了它:
答案 2 :(得分:3)
安装lxml之前(在Debian上):
apt-get install libxml2-dev libxslt1-dev pythonX.X-dev -y
其中pythonX.X
是python2.7
或python2.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包。