如何在 virtualenv 中安装 libxml2?
我有 virtualenv 和 --no-site-packages
选项。我在其中使用scrapy。 Scrapy 通过 import libxml2
使用 libxml2。如何使用 pip
或 easy_install
在 virtualenv 中安装 libxml2?
I have virtualenv with --no-site-packages
option. I'm using scrapy in it. Scrapy uses libxml2 by import libxml2
. How to install libxml2 in virtualenv using pip
or easy_install
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
pip install ftp://xmlsoft.org/libxml2/python/libxml2 -python-2.6.9.tar.gz
pip install ftp://xmlsoft.org/libxml2/python/libxml2-python-2.6.9.tar.gz
libxml2 是一个 C 库而不是 python 包,因此您无法使用 Pip 来安装它。通常它已经安装在几乎每个 Linux 发行版上。如果您需要安装它,只需
sudo apt-get install libxml2
如果由于某种原因您绝对需要进行本地安装,您将需要获取并安装 .deb 软件包或 RPM。除非您可以下载源代码并构建它。
如果您可以使用通用副本,但不想在路径中包含 /usr/local/ ,那么只需在您的 virtualenv 中对其进行符号链接即可。
您可以在 http://xmlsoft.org/ 找到更多信息(比您可能想要的更多)
Scrapy 在其要求中列出了它:
libxml2 is a C library not a python package so you cannot use Pip to install it. Normally it is already installed on almost every Linux distro out there. If you need to install it it's just
sudo apt-get install libxml2
If for some reason you absolutely need to have a local install you will need to grab and install the .deb package or the RPM. Barring that you can download the source and build it.
If you are fine with using the common copy but don't want to have /usr/local/ in your path, then just symlink it within your virtualenv.
You can find more info (than you probably wanted) at http://xmlsoft.org/
Scrapy lists it in their requirements:
安装 lxml 之前(在 Debian 上):
其中
pythonX.X
是python2.7
或python2.6
或其他针刺 python 版本。安装系统包后:
Before install lxml (on Debian):
Where
pythonX.X
ispython2.7
orpython2.6
or other needled python version.After install system packages:
我刚刚使用 Ubuntu 14.04 内核遇到这个问题。
我已经使用 pip 安装了 lxml。
当我尝试在 virtualenv 中
pip install lxml --upgrade
时,它总是给我一个我使用 sudo apt-get install libssl-dev 解决了这个问题。
I have just come to this problem, with Ubuntu 14.04 kernel.
I already installed lxml using pip.
When I try to
pip install lxml --upgrade
inside the virtualenv, it always gave me aI solved this using
sudo apt-get install libssl-dev
.或者,如果你在 Windows 上,正如我从你的问题中怀疑的那样,你需要获取 libxml2 二进制文件——scrapy 网站上有链接,并且截至 2010 年 11 月,已经编译了一个可以与所有内容一起使用的版本—— - 或者获取 scrapy 的当前 trunk/dev 版本,它与 lxml2 一起使用。对于 virtualenv,由于我不确定如何使用额外的二进制文件进行设置,因此后一种方法可能是最好的。我采用了后一种方法,到目前为止它对我来说完美无缺。感谢 Pablo Hoffman,Scrapy 的超级乐于助人的创建者(当我在 Scrapy 的邮件列表上发布一个与此非常相似的问题时,他几乎第二天就将这一更改发布到了主干)。注意:当时还没有与 python 2.7 一起使用的 libxml2 二进制文件。
Alternatively, if you are on windows, as I suspect from your question, you need to either get the libxml2 binary-- there are links on the scrapy site, and as of Nov 2010, a version has been compiled that will work with everything-- or get the current trunk/dev version of scrapy, which works with lxml2. For virtualenv, since I'm not sure how to setup with an extra binary, the latter approach might be best. I've adopted the latter approach and it works flawlessly for me so far. Thanks to Pablo Hoffman the ultra-helpful creator of Scrapy (when I posted a question much like this one on Scrapy's mailing list, he released this change to trunk almost the next day). Note: libxml2 binary that worked with python 2.7 wasn't yet available at that time.
如果您使用 apt-get(或其他包管理器)安装了 python-libxml2,您可以使用
--system-site-packages
标志从 virtualenv 访问它。创建 virtualenv 时只需指定此标志,例如:
这样您的 virtualenv 将继承系统范围内安装的 libxml2 包。
If you installed python-libxml2 using apt-get (or other package manager) you can access it from virtualenv with the
--system-site-packages
flag.When creating your virtualenv just specify this flag, e.g:
This way your virtualenv will inherit the libxml2 package which is installed system wide.