【发布时间】:2016-09-28 18:36:48
【问题描述】:
当我尝试构建一个包时:
C:\Linter\intlib\PYTHON>python setup.py build
我收到此错误消息:
运行构建
运行 build_ext
构建“LinPy”扩展
错误:无法找到 vcvarsall.bat
这是我的 Python 版本:
Win32 上的 Python 3.4.4(v3.4.4:737efcadf5a6,2015 年 12 月 20 日,20:20:57)[MSC v.1600 64 位 (AMD64)]
我正在使用 Windows 10 x64。我知道this 线程和其他几十个线程(例如this 和this 并且不胜枚举)。所以,我想我几乎尝试了一切,但没有任何效果。似乎所有这些线程都已经过时了,所以我需要一些新的收据。顺便提一句。我试过这个:
SET VS90COMNTOOLS=%VS100COMNTOOLS%
还有这个(在 Visual Studio 2015 Visual Studio 命令提示符中):
set DISTUTILS_USE_SDK=1
我在机器上到处寻找vcvarsall.bat,但找不到。
我调查了这个文件夹C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools,但它不包含任何.bat 文件。无论如何,经过我所有的操作python setup.py build 仍然会引发同样的错误。所以,我需要帮助。谢谢!
【问题讨论】:
-
Visual Studio 2015 的环境变量称为
%VS140COMNTOOLS% -
最简单的officially supported 构建环境是VS 2010 Professional。
-
我曾经使用 VS 2010 Express 和 Windows SDK v7.1 构建(所有更新都应用了——以正确的顺序),但是构建 x64 版本很痛苦,因为我必须手动编辑项目文件以分离 win32 和 amd64 子项目。使用 SDK 编译器,我必须使用
SetEnv.cmd来设置/x86或/x64,但不能同时使用。 -
@smerlin。如果您查看我的 Python 版本(... MSC v.1600 ...),您会发现它是使用 VS 2010 构建的。但我不知道这是否重要。
-
@Jacobian,重要的是使用不同版本的 Visual Studio 构建的扩展链接到不同的 C 运行时 DLL,该 DLL 具有自己的堆(用于分配内存)、标准 I/O
FILE流和低 I/O 文件描述符。因此,这可能是一个问题。在您的问题中,您提到了“Visual Studio 2015 Visual Studio 命令提示符”(用于 Python 3.5),因此不清楚您是否安装了 Visual Studio 2010,或者安装了哪个版本的 VS2010。
标签: python windows visual-studio-2010 python-3.4