Python 3.13.0a6安装cryptography报错“DistutilsPlatformError(“Unable to find vcvarsall.bat“)“

现象

最新alpha版Python 3.13.0a6通过pip安装cryptography报错

pip install cryptography

        raise distutils.errors.DistutilsPlatformError("Unable to find vcvarsall.bat")
      distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

这实际上是安装cffi时候的报错,直接运行pip install cffi会报相同的错误. 于是尝试修复
按照报错信息给的下载地址安装需要的C++库和编译环境,找到 用于 Visual Studio 的工具 部分,并下载 Visual Studio 生成工具。下载后,运行安装程序,选择 使用 C++ 的桌面开发,并在右侧面板中勾选 至少前两个选项然后单击 安装 按钮开始安装。如下:
在这里插入图片描述
再次执行pip install cffi安装 一顿操作猛如虎,最后报错信息变为

     _cffi_backend.obj : error LNK2001: unresolved external symbol _PyErr_WriteUnraisableMsg
      build\lib.win-amd64-cpython-313\_cffi_backend.cp313-win_amd64.pyd : fatal error LNK1120: 1 unresolved externals
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX86\\x64\\link.exe' failed with exit code 1120

解决办法

嘎嘎一顿乱搜之后发现Python 3.13.0a6由于是alpha版本cryptographycffi可能需要做适配.
原问题描述如下 通过pip install --pre cffi安装预览版报也许可以解决问题不过根据作者描述来看可能得等到Python 3.13.0rc1 发布之后才会有cffi适配的预发布版本. 实在不行可以把python降级回3.12版本再用pip安装cffi.
在这里插入图片描述

参考

  1. 安装 Microsoft Visual C++ 依赖项
  2. Does cryptography support Python 3.13 currently?
  3. cffi fails to build on Python 3.13
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值