2012-08-09 92 views
2

我的Python 2.7和我试图用PyQuery,所以对于一个测试,我刚键入“进口PyQuery”,我得到了一个错误:Python/PyQuery:无法找到vcvarsall.bat?

Traceback (most recent call last): 
    File "C:\Users\Jacob\Documents\dupes.py", line 1, in <module> 
    import pyquery 
    File "C:\Python27\lib\site-packages\pyquery-1.2.1-py2.7.egg\pyquery\__init__.py", line 12, in <module> 
    from .pyquery import PyQuery 
    File "C:\Python27\lib\site-packages\pyquery-1.2.1-py2.7.egg\pyquery\pyquery.py", line 8, in <module> 
    from lxml import etree 
ImportError: No module named lxml 

于是我去到命令提示符并试图安装LXML ,但我得到了这个:

Building lxml version 2.3.5. 
Building without Cython. 
ERROR: 'xslt-config' is not recognized as an internal or external command, 
operable program or batch file. 

** make sure the development packages of libxml2 and libxslt are installed ** 

Using build configuration of libxslt 
error: Setup script exited with error: Unable to find vcvarsall.bat 

我真的不明白什么是错的或我应该做什么......有人可以帮忙吗?

谢谢。

编辑:

在回应评论,我用简单的安装...

+0

你是如何尝试安装lxml的? – jdi 2012-08-09 19:55:14

回答

3

lxml安装说明:

easy_install --allow-hosts=lxml.de,*.python.org lxml 

在MS Windows,上面将安装我们提供的二进制版本。如果有最新版本的没有二进制编译呢,请搜索的PyPI为有他们的最后一个版本,并通过该版本的easy_install像这样:

easy_install --allow-hosts=lxml.de,*.python.org lxml==2.2.2 

[编辑]

好吧,2.2.2为EN例。我走到窗边看着你,试试:

easy_install --allow-hosts=lxml.de,*.python.org lxml==2.3 
+0

除非OP遇到问题,否则还应添加有关手动依赖项信息的部分。他可以手动安装这些。 – jdi 2012-08-09 19:58:07

+0

他们都给了我完全相同的错误.... – 2012-08-09 20:01:06

+1

@jdi:对于MS Windows,lxml的二进制蛋发行版是针对库静态构建的,即它已经包含它们。如果您使用PyPI的官方lxml版本,则无需安装外部库。 除非您知道自己在做什么,否则这意味着:如果使用lxml的二进制版本,请不要安装libxml2或libxslt。按照上面的安装说明使用easy_install。 仅当您想要升级库和/或从源代码编译lxml时,应该安装libxml2和libxslt的二进制分发版。 – favoretti 2012-08-09 20:07:13

0

除非你的Windows环境中设置正确(正确的Visual Studio版本为您的Python版本和所有),你应该下载二进制鸡蛋和安装。我知道setuptools(并可能分发)支持在Windows上安装二进制可执行文件包(仅基于distutils的可执行文件 - 具有蓝色背景和旧点阵Python标识的文件;对不起,但我没有在Windows上完成Python几个月)。 PIP不会(可能是你在使用什么)。

但是要回答你的问题,使用批处理文件vcvarsall.bat来设置从命令行构建Visual Studio项目/解决方案(通常使用任何Visual Studio工具)所需的环境变量。它默认不在你的PATH中,并且由于pip试图使用它来正确地构建lxml,所以它失败了。

我的建议:除非您知道如何使用Visual Studio命令行工具,否则在Windows上使用二进制包会更好。