解决thriftpy安装失败问题

在MacOS环境下尝试安装Python的第三方包thriftpy时,遇到了安装失败的问题,错误信息显示在编译C扩展模块时出现多个关于成员变量的错误。通过网络搜索,发现解决方案为先安装Cython,再安装thriftpy,最终问题得以解决。
摘要由CSDN通过智能技术生成

mac os安装python第三方包时,遇到依赖的thriftpy包安装不成功的问题

Building wheel for thriftpy (setup.py) ... error
  ERROR: Complete output from command /Users/leonlai/miniconda3/bin/python3 -u -c 'import setuptools, tokenize;__file__='"'"'/private/var/folders/cr/5ld2qxcs4pxbzklv5qcqkbpm0000gn/T/pip-install-fv8swz53/thriftpy/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/cr/5ld2qxcs4pxbzklv5qcqkbpm0000gn/T/pip-wheel-8t531r6s --python-tag cp37:
  ERROR: running bdist_wheel
  The [wheel] section is deprecated. Use [bdist_wheel] instead.
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.7-x86_64-3.7
  creating build/lib.macosx-10.7-x86_64-3.7/thriftpy
  copying thriftpy/server.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy
  copying thriftpy/hook.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy
  copying thriftpy/__init__.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy
  copying thriftpy/thrift.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy
  copying thriftpy/rpc.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy
  copying thriftpy/utils.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy
  copying thriftpy/tornado.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy
  copying thriftpy/_compat.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy
  creating build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport
  copying thriftpy/transport/_ssl.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport
  copying thriftpy/transport/__init__.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport
  copying thriftpy/transport/sslsocket.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport
  copying thriftpy/transport/socket.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport
  creating build/lib.macosx-10.7-x86_64-3.7/thriftpy/protocol
  copying thriftpy/protocol/binary.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/protocol
  copying thriftpy/protocol/compact.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/protocol
  copying thriftpy/protocol/__init__.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/protocol
  copying thriftpy/protocol/exc.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/protocol
  copying thriftpy/protocol/multiplex.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/protocol
  copying thriftpy/protocol/json.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/protocol
  creating build/lib.macosx-10.7-x86_64-3.7/thriftpy/parser
  copying thriftpy/parser/__init__.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/parser
  copying thriftpy/parser/parser.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/parser
  copying thriftpy/parser/exc.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/parser
  copying thriftpy/parser/lexer.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/parser
  creating build/lib.macosx-10.7-x86_64-3.7/thriftpy/contrib
  copying thriftpy/contrib/__init__.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/contrib
  creating build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport/memory
  copying thriftpy/transport/memory/__init__.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport/memory
  creating build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport/buffered
  copying thriftpy/transport/buffered/__init__.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport/buffered
  creating build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport/framed
  copying thriftpy/transport/framed/__init__.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/transport/framed
  creating build/lib.macosx-10.7-x86_64-3.7/thriftpy/contrib/tracking
  copying thriftpy/contrib/tracking/__init__.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/contrib/tracking
  copying thriftpy/contrib/tracking/tracker.py -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/contrib/tracking
  copying thriftpy/contrib/tracking/tracking.thrift -> build/lib.macosx-10.7-x86_64-3.7/thriftpy/contrib/tracking
  running build_ext
  building 'thriftpy.transport.cybase' extension
  creating build/temp.macosx-10.7-x86_64-3.7
  creating build/temp.macosx-10.7-x86_64-3.7/thriftpy
  creating build/temp.macosx-10.7-x86_64-3.7/thriftpy/transport
  gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/leonlai/miniconda3/include -arch x86_64 -I/Users/leonlai/miniconda3/include -arch x86_64 -I/Users/leonlai/miniconda3/include/python3.7m -c thriftpy/transport/cybase.c -o build/temp.macosx-10.7-x86_64-3.7/thriftpy/transport/cybase.o
  thriftpy/transport/cybase.c:3127:24: error: no member named 'exc_type' in 'struct _ts'
      tmp_type = tstate->exc_type;
                 ~~~~~~  ^
  thriftpy/transport/cybase.c:3128:25: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
      tmp_value = tstate->exc_value;
                          ^~~~~~~~~
                          curexc_value
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
      PyObject *curexc_value;
                ^
  thriftpy/transport/cybase.c:3129:22: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
      tmp_tb = tstate->exc_traceback;
                       ^~~~~~~~~~~~~
                       curexc_traceback
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
      PyObject *curexc_traceback;
                ^
  thriftpy/transport/cybase.c:3130:13: error: no member named 'exc_type' in 'struct _ts'
      tstate->exc_type = local_type;
      ~~~~~~  ^
  thriftpy/transport/cybase.c:3131:13: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
      tstate->exc_value = local_value;
              ^~~~~~~~~
              curexc_value
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
      PyObject *curexc_value;
                ^
  thriftpy/transport/cybase.c:3132:13: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
      tstate->exc_traceback = local_tb;
              ^~~~~~~~~~~~~
              curexc_traceback
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
      PyObject *curexc_traceback;
                ^
  thriftpy/transport/cybase.c:3154:24: error: no member named 'exc_type' in 'struct _ts'
      tmp_type = tstate->exc_type;
                 ~~~~~~  ^
  thriftpy/transport/cybase.c:3155:25: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
      tmp_value = tstate->exc_value;
                          ^~~~~~~~~
                          curexc_value
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
      PyObject *curexc_value;
                ^
  thriftpy/transport/cybase.c:3156:22: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
      tmp_tb = tstate->exc_traceback;
                       ^~~~~~~~~~~~~
                       curexc_traceback
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
      PyObject *curexc_traceback;
                ^
  thriftpy/transport/cybase.c:3157:13: error: no member named 'exc_type' in 'struct _ts'
      tstate->exc_type = *type;
      ~~~~~~  ^
  thriftpy/transport/cybase.c:3158:13: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
      tstate->exc_value = *value;
              ^~~~~~~~~
              curexc_value
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
      PyObject *curexc_value;
                ^
  thriftpy/transport/cybase.c:3159:13: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
      tstate->exc_traceback = *tb;
              ^~~~~~~~~~~~~
              curexc_traceback
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
      PyObject *curexc_traceback;
                ^
  thriftpy/transport/cybase.c:3178:21: error: no member named 'exc_type' in 'struct _ts'
      *type = tstate->exc_type;
              ~~~~~~  ^
  thriftpy/transport/cybase.c:3179:22: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
      *value = tstate->exc_value;
                       ^~~~~~~~~
                       curexc_value
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
      PyObject *curexc_value;
                ^
  thriftpy/transport/cybase.c:3180:19: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
      *tb = tstate->exc_traceback;
                    ^~~~~~~~~~~~~
                    curexc_traceback
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
      PyObject *curexc_traceback;
                ^
  thriftpy/transport/cybase.c:3187:24: error: no member named 'exc_type' in 'struct _ts'
      tmp_type = tstate->exc_type;
                 ~~~~~~  ^
  thriftpy/transport/cybase.c:3188:25: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
      tmp_value = tstate->exc_value;
                          ^~~~~~~~~
                          curexc_value
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:240:15: note: 'curexc_value' declared here
      PyObject *curexc_value;
                ^
  thriftpy/transport/cybase.c:3189:22: error: no member named 'exc_traceback' in 'struct _ts'; did you mean 'curexc_traceback'?
      tmp_tb = tstate->exc_traceback;
                       ^~~~~~~~~~~~~
                       curexc_traceback
  /Users/leonlai/miniconda3/include/python3.7m/pystate.h:241:15: note: 'curexc_traceback' declared here
      PyObject *curexc_traceback;
                ^
  thriftpy/transport/cybase.c:3190:13: error: no member named 'exc_type' in 'struct _ts'
      tstate->exc_type = type;
      ~~~~~~  ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  20 errors generated.
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for thriftpy

网上搜索解决方案,执行下面命令

pip install cython thriftpy

问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值