You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用setup.py安装pyethash报错:无法找到assert.h及编译失败

解决pyethash安装时的编译错误与弃用警告问题

核心编译错误修复

1. 移除MSVC不支持的编译参数

你的setup.py中使用了GCC专属的-std=gnu99参数,Windows平台的MSVC编译器无法识别该选项,会触发警告并直接忽略。需要分平台调整编译参数:
修改setup.py里Extension的定义部分:

# 分平台设置编译参数
extra_compile_args = ["-Isrc/", "-Wall"]
if os.name != 'nt':
    extra_compile_args.append("-std=gnu99")

pyethash = Extension('pyethash',
                     sources=sources,
                     depends=depends,
                     extra_compile_args=extra_compile_args)

2. 修复assert.h找不到的问题

assert.h是C标准库头文件,找不到说明你的Visual Studio Build Tools环境配置异常:

  • 确认安装Visual Studio Build Tools时,已勾选**"Desktop development with C++"**组件,包含MSVC编译器、Windows SDK等核心内容。
  • 打开**"x64 Native Tools Command Prompt for VS 2022"**,激活Python虚拟环境后再执行安装操作,确保编译器能正确识别系统头文件路径。

解决setup.py弃用警告

官方已弃用直接运行python setup.py install的方式,推荐使用标准工具链:

  1. 安装build工具:
pip install build
  1. 在项目根目录执行构建:
python -m build --wheel
  1. 用installer安装生成的wheel包(路径根据实际生成的文件名调整):
pip install dist/pyethash-0.1.23-cpXX-cpXX-win_amd64.whl

额外处理:文件缺失警告

错误日志提到warning: no files found matching 'src\libethash\util.c',请检查项目目录:

  • 若该文件确实不存在,从ethash官方仓库同步完整代码;
  • 或在setup.py的depends或sources列表中移除对该不存在文件的引用。

内容的提问来源于stack exchange,提问作者ion viitor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 07:58:12