日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

转载 python扩展问题”unable to find vcvarsall.bat“的解决

發(fā)布時(shí)間:2025/7/14 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转载 python扩展问题”unable to find vcvarsall.bat“的解决 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文來(lái)自:http://blog.csdn.net/ren911/article/details/6448696

?3654人閱讀?評(píng)論(3)?收藏?舉報(bào)

在用C給python3.寫(xiě)擴(kuò)展時(shí)遇到如下問(wèn)題:

寫(xiě)好*module.c和setup.py文件后執(zhí)行

python setup.py build

報(bào)unable to find vcvarsall.bat

我機(jī)器上有vs2005和vc6,但是還是報(bào)錯(cuò)。

搜索很多資料:

網(wǎng)上提供解決辦法如下:

下載mingw環(huán)境,添加環(huán)境變量

使用

python setup.py build –compiler=mingw32

這個(gè)辦法感覺(jué)只是繞過(guò)了這個(gè)問(wèn)題,并不是真正解決問(wèn)題,而且我系統(tǒng)中python是用vs編譯的,擴(kuò)展模塊卻用mingw-gcc編譯,感覺(jué)可能有問(wèn)題。

但網(wǎng)上對(duì)此就缺少詳細(xì)的說(shuō)明

經(jīng)過(guò)對(duì)C:/Python32/Lib/distutils目錄下.py文件的仔細(xì)翻閱,發(fā)現(xiàn)“unable to find vcvarsall.bat”這句話(huà)出在msvc9compiler.py中

再研究這個(gè)文件發(fā)現(xiàn)問(wèn)題所在了:

它是在注冊(cè)表中尋找到vs的目錄,再去在vs目錄下找vcvarsall.bat。

但是問(wèn)題就出在python32里面默認(rèn)是vc9.0也就是vs2008所以它在注冊(cè)表里面找不到鍵值返回None

productdir = Reg.get_value(r"%s/Setup/VC" % vsbase,

"productdir")

vsbase值為:Software/Microsoft/VisualStudio/9.0

具體修改代碼如下:

msvc9compiler.py中

def find_vcvarsall(version) 用于查找vcvarsall.bat version就是版本號(hào),實(shí)際上是9.0

vc_env = query_vcvarsall(VERSION, plat_spec)

VERSION = get_build_version() 因?yàn)閜ython32自己是由vc9.0構(gòu)建的所以VERSION是9.0

修改MSVCCompiler函數(shù):

vc_env = query_vcvarsall(VERSION, plat_spec)

為:

vc_env = query_vcvarsall(8.0, plat_spec)

不過(guò)還有這句話(huà):

if VERSION < 8.0:

raise DistutilsPlatformError("VC %0.1f is not supported by this module" % VERSION)

看來(lái),python3.2中的distutils只支持vc8.0以上,即vs2005以上的編譯器。

轉(zhuǎn)載于:https://www.cnblogs.com/shalang/articles/2825676.html

總結(jié)

以上是生活随笔為你收集整理的转载 python扩展问题”unable to find vcvarsall.bat“的解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。