emsdk install latest 出错

1
2
3
4
5
6
7
C:\emsdk>emsdk install latest
Resolving SDK alias 'latest' to '4.0.7'
Resolving SDK version '4.0.7' to 'sdk-releases-ef4e9cedeac3332e4738087567552063f4f250d3-64bit'
Installing SDK 'sdk-releases-ef4e9cedeac3332e4738087567552063f4f250d3-64bit'..
Installing tool 'node-20.18.0-64bit'..
Error: Downloading URL 'https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/node-v20.18.0-win-x64.zip': <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)>
error: installation failed!

解决方法

导入ssl

修改 emsdk.py

引入ssl库

1
import ssl

修改文件内容

1
2
def download_with_urllib(url, file_name):
  u = urlopen(url)

改为如下

1
2
3
4
5
def download_with_urllib(url, file_name):
  # 创建不验证SSL证书的上下文
  unverified_context = ssl._create_unverified_context()
  # 将上下文注入urlopen
  u = urlopen(url, context=unverified_context)  # <-- 关键修改

修改upate_node.py

引入ssl库

1
import ssl

修改文件内容

1
2
    print('Downloading: ' + download_url)
    urllib.request.urlretrieve(download_url, filename)

修改成如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
	import ssl

    # 创建未经验证的SSL上下文
    unverified_context = ssl._create_unverified_context()
    print('Downloading: ' + download_url)
    urllib.request.urlretrieve(
        download_url, 
        filename=filename,
        context=unverified_context  # 注入未验证上下文
    )