建设lxml Python2.7在Windows
-
27-09-2019 - |
题
我在试图建立lxml Python2.7在Windows64位机。我找不到lxml蛋Python2.7版本。所以我编写,它从来源。我下的指令在这个网站上
在静态连接的部分。我得到错误
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.蝙蝠文件。
其他提示
后下列建议的解决方案:
- 下载 VCForPython27.msi 从Microsoft,
- 安装(windows7资,蟒蛇(x,y)2.7.9 32位),
- 进入/更新了环境变量 VS90COMNTOOLS 要 安装目录价值 (C:\Program 文件(86)\共同的 文件\微软\视C++Python\9.0)
我的问题仍然存在(要建立一个Python扩展C)。
我不得不这样做以下2个肮脏的令人难以置信的调整,前一切现在的确是工作:
- 修改 "msvc9compiler.py" 在 "C:\Python27\Lib\distutils", 功能 find_vcvarsall, ,现在点 "视觉C++ 蟒" 而不是来 "VC".
- 复制目录下的创始人 "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++命令提示:
该MSVC为蟒蛇命令提示
设置DISTUTILS_USE_SDK=1
设置MSSdk=1
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
我有类似的问题。这个工作瞬间没有任何东西比使用安装导和设定一个偏好。