我在试图建立lxml Python2.7在Windows64位机。我找不到lxml蛋Python2.7版本。所以我编写,它从来源。我下的指令在这个网站上

http://lxml.de/build.html

在静态连接的部分。我得到错误

C:\Documents and Settings\Administrator\Desktop\lxmlpackage\lxml-2.2.6\lxml-2.2.
6>python setup.py bdist_wininst --static
Building lxml version 2.2.6.
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' need
s to be available.
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
Building against libxml2/libxslt in one of the following directories:
  ..\libxml2-2.7.6--win32--w2k--x64\lib
  ..\libxslt-1.1.26--win32--w2k--x64--0002\lib
  ..\zlib-1.2.4--win32--w2k--x64
  ..\iconv-1.9.1--win32--w2k--x64-0001\lib
running bdist_wininst
running build
running build_py
running build_ext
building 'lxml.etree' extension
error: Unable to find vcvarsall.bat

任何一个可以帮我这个?我试图设置的路径有Visual Studio..我可以跑vcvarsall.蝙蝠从命令行..但是蟒蛇是有问题

有帮助吗?

解决方案

我打赌你不使用VS2008年为此:)

还有 def find_vcvarsall(版本): 功能(猜测是什么,它看起来对vcvarsall.蝙蝠)在distutils来完成下列评论

在第一次尝试找到的 productdir的VS2008年在注册表中。如果失败,它回落到 VS90COMNTOOLS env var.

如果你不使用VS2008那么你有没有注册表,钥匙也没有合适的环境变量,这就是为什么distutils来完成不能找到vcvarsall.蝙蝠文件。它不会 如果蝙蝠文件可通过路径的环境变量。

该方案是定义VS90COMNTOOLS变量指要工具目录的Visual Studio.

这就是说看看 11.4.distutils来完成.msvccompiler—微软编译器 部分Python docs其国

通常,扩展模块的需要 以汇编,同编译器 那是用来汇编蟒蛇。

马丁诉Loewis在电子邮件名为 下载Visual Studio2008现在快 在python名单邮寄名单国家同

蟒蛇2.6,2.7,并3.1都是建立 这释(即2008年)。因 另一个长期传统,蟒蛇 扩展模式必须建立有 同一编译版本(多 具体地说,CRT版本)作为蟒蛇 本身。因此,要建立扩展模块 对于任何这样稿,你需要 有一份VS2008年或2008年VS 表达。

在光线以上的语句 应该 使用VS2008如果你想要建立lxml Python2.7因此,虽然设定VS90COMNTOOLS需要照顾的寻找vcvarsall.蝙蝠文件,它不是 解决方案。

这就是说:)人不要试图用老年CRT新编译器:
我可以使用的视觉工作室2010C++编译器用Visual Studio2008年的C++Runtime Library?
如何强制执行的C++编译器使用的具体CRT的版本吗?
VS2008-链接针对老C runtime

我想感谢Kev德怀尔(指出了重要的版本VS是使用)和斯特凡Behnel(指着我要distutils来完成作为一个地方处理与编译器的配置)在线程 问题的建筑lxml下Windows-错误:无法找到vcvarsall.蝙蝠 在lxml的邮件列表。我想也感谢 agronholm 从freenode#distutils来完成IRC道确认是distutils来完成不含有代码看起来对vcvarsall.蝙蝠文件。

其他提示

后下列建议的解决方案:

  1. 下载 VCForPython27.msi 从Microsoft,
  2. 安装(windows7资,蟒蛇(x,y)2.7.9 32位),
  3. 进入/更新了环境变量 VS90COMNTOOLS 要 安装目录价值 (C:\Program 文件(86)\共同的 文件\微软\视C++Python\9.0)

我的问题仍然存在(要建立一个Python扩展C)。

我不得不这样做以下2个肮脏的令人难以置信的调整,前一切现在的确是工作:

  1. 修改 "msvc9compiler.py""C:\Python27\Lib\distutils", 功能 find_vcvarsall, ,现在点 "视觉C++ 蟒" 而不是来 "VC".
  2. 复制目录下的创始人 "C:\Program 文件(86)\共同的 文件\微软\视C++Python\9.0\""C:\Program 文件 (86)\共同文件\微软\视C++Python\" (即一个dir 水平)。

我不能告诉谁是做错了什么在这里-可能I.

编辑。移动目录的工作,因为该问题的描述 这distutils来完成的错误.

即使VS90COMNTOOLS置msvc9compiler不能找到vcvarsall.蝙蝠,因为它是安装在 %installdir%/vcvarsall.bat 而不 %installdir%/VC/vcvarsall.bat

所描述的解决方法是使用C++命令提示:

  1. 该MSVC为蟒蛇命令提示

  2. 设置DISTUTILS_USE_SDK=1

  3. 设置MSSdk=1

  4. python.exe setup.py ...

Jorj McKie几乎是正确的:事实上安装 VCForPython27.msi 是不是足够的,并且是的这是一个问题,在distutils来完成其防止它寻找find_vcvarsall.事实上,问题不是直接在distutils来完成,但在如何VCForPython27.msi物包装和vcvarsall.蝙蝠是放在(本文件夹的布局是不同的VS2008SDK)。

一个简单的解决方法同时得到修补,也许在Python2.7.11:使用的设置工具,而不是distutils来完成.

另一个手册的解决方法如果你坚持distutils来完成:

1) Enter MSVC for Python command prompt
2) SET DISTUTILS_USE_SDK=1
3) SET MSSdk=1
4) you can then build your C extensions: python.exe setup.py ...

错误的报告和解决方法通过Gregory Szorc:http://bugs.python.org/issue23246

更多信息和解决办法为使用%%cython魔内IPython: https://github.com/cython/cython/wiki/CythonExtensionsOnWindows

https://github.com/develersrl/gccwinbinaries

我有类似的问题。这个工作瞬间没有任何东西比使用安装导和设定一个偏好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top