有没有办法让pywin32使用vcvars32.bat而不是vcvarsall.bat?

2 投票
3 回答
1963 浏览
提问于 2025-04-16 08:18

我正在尝试在我的Windows 7电脑上安装pywin32。在运行安装脚本的时候,我遇到了一个常见的错误:“找不到vcvarsall.bat”。我已经安装了Visual C++,所以有点困惑。经过一番搜索,我发现解决这个问题的最好办法可能是把这个批处理文件的路径直接添加到我的系统路径中。不过,当我寻找这个路径时,我意识到因为我安装的是Visual Studio 2010,而不是2008或更早的版本,所以我有一个叫“vcvars32.bat”的文件,而不是通常的“vcvarsall.bat”。

那么,能不能让安装脚本使用vcvars32呢?这可能听起来很荒唐,也许暴露了我对批处理文件了解得不够多,但我可以把vcvars32.bat文件复制并重命名为vcvarsall.bat吗?或者它们之间的差别太大,不能正常工作?

还是说我需要安装一个旧版本的Visual Studio?如果可以避免的话,我真的不想这么做。我在用MinGW构建的时候也遇到了一些问题。有没有什么文件我需要先下载?

提前谢谢你,

Ken

3 个回答

1

安装pywin32的二进制版本要简单得多,不需要安装任何C++编译器。出于某种原因,在sourceforge网站上不容易找到这些文件,但它们确实在那里。这里是版本2.14所有可执行文件的链接: http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/

1

你可以写一个 vcvarsall.bat 文件,这个文件的作用很简单,就是

"%~dp0\vcvars32.bat"

在同一个文件夹里运行 vcvars32.bat

(我觉得是这样。我已经有好几年没碰过Windows了……真开心 ☺)

3

有没有办法让pywin32使用vcvars32.bat,而不是vcvarsall.bat?

其实没必要。

我发现,因为我安装的是Visual Studio 2010,而不是2008或更早的版本,所以我有一个叫“vcvars32.bat”的文件,而不是通常的“vcvarsall.bat”。

你其实是两个文件都有的,vcvars32.bat是被vcvarsall.bat使用的。比如,在64位Windows上,Visual Studio 2010的这两个文件通常会在以下路径找到:

  • C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat
  • C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat

那我是不是只需要安装一个旧版本的Visual Studio?

如果你使用的是官方的Python版本,那么你确实需要安装一个旧版本的Visual Studio——具体是Visual Studio 2008或2005,这取决于你使用的Python版本。因为这些旧版本的Visual Studio是用来制作官方Python版本的,而在构建C扩展模块时,你必须使用相同版本的编译器。

撰写回答