安装fyers-apiv3遇error C2039: 'ob_digit'非_longobject成员求助
解决安装fyers-apiv3时aiohttp编译报错的方案
问题本质
这个error C2039: 'ob_digit': is not a member of '_longobject'报错,核心原因是Python 3.11+对内部C API做了调整,移除了_longobject的ob_digit成员,而部分aiohttp依赖的底层C扩展库(如multidict、yarl)未适配该变更,导致编译失败。
具体解决步骤
安装适配Python 3.11的稳定版依赖
放弃测试版,直接安装aiohttp 3.9.0及以上正式版,同时强制更新依赖库到适配版本:pip install --upgrade pip pip install aiohttp>=3.9.0 multidict>=6.0.4 yarl>=1.9.2完成后再安装fyers-apiv3:
pip install fyers-apiv3使用预编译wheel包跳过本地编译
若本地编译环境存在问题,直接强制使用预编译好的wheel包:
先卸载现有相关包:pip uninstall -y aiohttp multidict yarl然后执行以下命令安装,
--only-binary :all:参数会让pip优先选择预编译包,无需本地编译:pip install aiohttp==3.9.0 --only-binary :all: pip install multidict==6.0.4 --only-binary :all: pip install yarl==1.9.2 --only-binary :all:之后再安装fyers-apiv3即可。
修复本地C++编译环境
确保安装了适配的Visual Studio构建工具:- 打开Visual Studio Installer,安装「Desktop development with C++」工作负载,勾选「MSVC v143 - VS 2022 C++ x64/x86 build tools」和对应版本的Windows SDK
- 打开命令提示符,执行以下命令配置环境变量:
set DISTUTILS_USE_SDK=1 set MSSdk=1
之后重新尝试安装操作。
临时降级Python版本
若上述方法均无效,可暂时降级到Python 3.10.x版本(该版本保留了ob_digit成员,不会触发编译错误):pyenv install 3.10.13 pyenv local 3.10.13 pip install fyers-apiv3
内容的提问来源于stack exchange,提问作者mona
相关产品推荐
相关产品推荐

