我有带选项的virtualenv 。--no-site-packages
我在里面使用scrapy。Scrapy通过. _ import libxml2
如何使用pip
or在 virtualenv 中安装 libxml2 easy_install
?
6 回答
安装 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
libxml2 是 C 库而不是 python 包,因此您不能使用 Pip 安装它。通常它已经安装在几乎所有的 Linux 发行版上。如果你需要安装它只是
sudo apt-get install libxml2
如果由于某种原因您绝对需要进行本地安装,则需要获取并安装 .deb 包或 RPM。除非您可以下载源代码并构建它。
如果您可以使用通用副本,但不想在路径中包含 /usr/local/,那么只需在您的 virtualenv 中符号链接即可。
您可以在http://xmlsoft.org/找到更多信息(比您可能想要的更多)
Scrapy 在他们的要求中列出了它:
- Python 2.5 或更高版本
- 扭曲 2.5.0 或更高版本
- libxml2 2.6.28 或更高版本(包括 Python 投标)
- pyopenssl - 仅当您想抓取安全(HTTPS)页面时
我刚刚遇到了这个问题,使用的是 Ubuntu 14.04 内核。
我已经使用 pip 安装了 lxml。
当我尝试pip install lxml --upgrade
进入 virtualenv 时,它总是给我一个
x86_64-gnu-gcc 退出 1
我使用sudo apt-get install libssl-dev
.
或者,如果您在 Windows 上,正如我从您的问题中所怀疑的那样,您需要获取 libxml2 二进制文件——scrapy 网站上有链接,并且截至 2010 年 11 月,已经编译了一个适用于所有内容的版本—— - 或获取与 lxml2 一起使用的当前主干/开发版本的 scrapy。对于 virtualenv,由于我不确定如何使用额外的二进制文件进行设置,因此后一种方法可能是最好的。我采用了后一种方法,到目前为止它对我来说完美无缺。感谢 Scrapy 的超级有用的创建者 Pablo Hoffman(当我在 Scrapy 的邮件列表上发布了一个与此非常相似的问题时,他几乎在第二天就将这个更改发布到了主干)。注意:当时还没有与 python 2.7 一起工作的 libxml2 二进制文件。
如果您 使用 apt-get(或其他包管理器)安装了python-libxml2--system-site-packages
,您可以使用标志从 virtualenv 访问它。
创建您的 virtualenv 时,只需指定此标志,例如:
virtualenv --system-site-packages env
这样,您的 virtualenv 将继承系统范围内安装的 libxml2 包。