首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Microsoft Visual C++编译器Python2.7

Microsoft Visual C++编译器Python2.7
EN

Stack Overflow用户
提问于 2014-10-01 19:21:21
回答 3查看 73.8K关注 0票数 21

我下载并安装了Microsoft Visual C++ Compiler for Python 2.7vcvarsall.bat的完整路径是:

代码语言:javascript
复制
C:\Users\UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\vcvarsall.bat

但是下面的代码不能返回它的路径:

代码语言:javascript
复制
from distutils import msvc9compiler
msvc9compiler.find_vcvarsall(9.0)

安装程序不会将安装信息写入注册表,而且从find_vcvarsall()的源代码来看,它似乎无法从VS90COMNTOOLS设置中找到vcvarsall.bat文件,因为它要求包含vcvarsall.bat的文件夹的名称为VC

代码语言:javascript
复制
productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC")

如何在不修改注册表或文件夹名的情况下使用编译器?

EN

回答 3

Stack Overflow用户

发布于 2015-05-16 23:30:07

Christian Long提供了一个可行的解决方案。但如果你不想每次都在"Visual C++ 2008 32位/64位命令“中修改它,你可以简单地找到"vcvarsall.bat”的位置,即"C:\Users\UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\vcvarsall.bat",然后修改Python27\Lib\distutils\msvc9compiler.py中的find_vcvarsall(版本)函数

如下所示:

代码语言:javascript
复制
def find_vcvarsall(version):
    productdir= "C:/Users/UserName/AppData/Local/Programs/Common/Microsoft/Visual C++ for Python/9.0"
    vcvarsall = os.path.join(productdir, "vcvarsall.bat")
    if os.path.isfile(vcvarsall):
        return vcvarsall
    else:
        return None

简单,丑陋,但很有用。

请注意,微软不再允许您下载所需的Visual Studio2008 VC++构建工具,但可以在归档文件中找到该文件:https://web.archive.org/web/20210106040224/https://download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907B/VCForPython27.msi

票数 9
EN

Stack Overflow用户

发布于 2014-10-04 23:38:50

我对这个包也有同样的问题,看起来他们并没有用干净的安装来测试它。

最后,我只是添加了一个键来创建COMPUTER\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC,然后添加了一个名为productdir的字符串值,该值设置为我的vcvarsall.bat路径,与您的路径相同。

票数 5
EN

Stack Overflow用户

发布于 2014-11-30 13:51:09

在命令行中升级setuptools:

代码语言:javascript
复制
pip install --upgrade setuptools

高于6.0的最新版本的setuptools应该会自动检测Microsoft Visual C++编译器for Python2.7

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26140192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档