Windows11使用Cpython?編譯文件報(bào)錯(cuò)?error:?Unable?to?find?vcvarsall.bat?完美解決方法
開發(fā)環(huán)境說明:
- python 3.6.2
- Vs studio 2017 (已經(jīng)安裝C++桌面開發(fā))

我的vcvarsall.bat 路徑為:
"D:\vsstudio\VC\Auxiliary\Build\vcvarsall.bat"
一般在Vs studio 的此安裝路徑下

修改python源代碼
修改文件為 python3.6.2\Lib\distutils\_msvccompiler.py 注意 前面存在下劃線:
我的文件路徑為:
"D:\core_package\python3.6.2\Lib\distutils\_msvccompiler.py"

接下來 使用記事本打開:
- 將_find_vcvarsall 函數(shù)修改:
- 源代碼:
def _find_vcvarsall(plat_spec):
try:
key = winreg.OpenKeyEx(
winreg.HKEY_LOCAL_MACHINE,
r"Software\Microsoft\VisualStudio\SxS\VC7",
access=winreg.KEY_READ | winreg.KEY_WOW64_32KEY
)
except OSError:
log.debug("Visual C++ is not registered")
return None, None
with key:
best_version = 0
best_dir = None
for i in count():
try:
v, vc_dir, vt = winreg.EnumValue(key, i)
except OSError:
break
if v and vt == winreg.REG_SZ and os.path.isdir(vc_dir):
try:
version = int(float(v))
except (ValueError, TypeError):
continue
if version >= 14 and version > best_version:
best_version, best_dir = version, vc_dir
if not best_version:
log.debug("No suitable Visual C++ version found")
return None, None
vcvarsall = os.path.join(best_dir, "vcvarsall.bat")
if not os.path.isfile(vcvarsall):
log.debug("%s cannot be found", vcvarsall)
return None, None
vcruntime = None
vcruntime_spec = _VCVARS_PLAT_TO_VCRUNTIME_REDIST.get(plat_spec)
if vcruntime_spec:
vcruntime = os.path.join(best_dir,
vcruntime_spec.format(best_version))
if not os.path.isfile(vcruntime):
log.debug("%s cannot be found", vcruntime)
vcruntime = None
return vcvarsall, vcruntime修改為:
def _find_vcvarsall(plat_spec):
best_dir = r"D:\vsstudio\VC\Auxiliary\Build"
best_version = 17
vcruntime = None
vcruntime_spec = _VCVARS_PLAT_TO_VCRUNTIME_REDIST.get(plat_spec)
if vcruntime_spec:
vcruntime = os.path.join(best_dir,
vcruntime_spec.format(best_version))
if not os.path.isfile(vcruntime):
log.debug("%s cannot be found", vcruntime)
vcruntime = None
print(vcruntime)
return r"D:\vsstudio\VC\Auxiliary\Build\vcvarsall.bat", vcruntime要修改的 如下圖所示:

如果跟我配置一樣的話 到指定目錄終端下
就可以輸入
python setup.py build_ext --inplace
完成 PYTHON 到 c 的文件編譯啦
成功截圖 如下所示:

注意 編譯完成后要使用時(shí) 需要將 .pyx文件 .c文件 .py文件全部刪除 只保留 pyd文件
在其他文件調(diào)用時(shí) 不用擔(dān)心報(bào)錯(cuò) 可以正常運(yùn)行

輸出結(jié)果如下所示

到此這篇關(guān)于Windows11使用Cpython 編譯文件報(bào)錯(cuò) error: Unable to find vcvarsall.bat 完美解決方法的文章就介紹到這了,更多相關(guān)Cpython 編譯文件報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python報(bào)錯(cuò)解決之python運(yùn)行bat文件的各種問題處理
- python實(shí)現(xiàn)遠(yuǎn)程運(yùn)行bat文件
- python神經(jīng)網(wǎng)絡(luò)Batch?Normalization底層原理詳解
- python神經(jīng)網(wǎng)絡(luò)之批量學(xué)習(xí)tf.train.batch函數(shù)示例
- python生成器generator:深度學(xué)習(xí)讀取batch圖片的操作
- Python產(chǎn)生batch數(shù)據(jù)的操作
- python非阻塞式后臺(tái)如何運(yùn)行bat腳本
相關(guān)文章
詳解如何在Python中使用Jinja2進(jìn)行模板渲染
Jinja2 是一個(gè)現(xiàn)代的、設(shè)計(jì)精美的 Python 模板引擎,它使用類似于 Django 的模板語(yǔ)言來渲染文本文件,下面我將通過幾個(gè)例子展示如何在 Python 中使用 Jinja2 進(jìn)行模板渲染,文中有詳細(xì)的代碼供大家參考,需要的朋友可以參考下2024-08-08
Python輕松更換國(guó)內(nèi)鏡像源的三種方法推薦
在使用Python進(jìn)行開發(fā)的時(shí)候,很多人都知道,國(guó)內(nèi)的網(wǎng)絡(luò)環(huán)境有時(shí)候會(huì)讓我們?cè)诎惭b包時(shí)遇到一些麻煩,下面小編就來和大家分享三種實(shí)用的方法輕松解決這一問題吧2025-03-03
Python Selenium Cookie 繞過驗(yàn)證碼實(shí)現(xiàn)登錄示例代碼
這篇文章主要介紹了Python Selenium Cookie 繞過驗(yàn)證碼實(shí)現(xiàn)登錄示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
flask+pymysql實(shí)現(xiàn)Web端操作數(shù)據(jù)庫(kù)的項(xiàng)目實(shí)踐
本文主要介紹了flask+pymysql實(shí)現(xiàn)Web端操作數(shù)據(jù)庫(kù)的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
python 實(shí)現(xiàn)一次性在文件中寫入多行的方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)一次性在文件中寫入多行的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
一篇文章弄懂Python中所有數(shù)組數(shù)據(jù)類型
這篇文章主要給大家介紹了關(guān)于Python中所有數(shù)組數(shù)據(jù)類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
python+selenium實(shí)現(xiàn)163郵箱自動(dòng)登陸的方法
本篇文章主要介紹了python+selenium實(shí)現(xiàn)163郵箱自動(dòng)登陸的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12

