Thriftpy / thriftpy2

Pure python approach of Apache Thrift.
MIT License
572 stars 91 forks source link

RHEL 8.2 Oopta installation issue #153

Closed ramanagali closed 3 years ago

ramanagali commented 3 years ago

i am trying to install thriftpy2 in RHEL 8.2 Oopta(AWS Ec2 instance), getting below error. Please help to provide workaround/fix for this as this is one of the dependency for BentoML

$ pip install thriftpy2
Defaulting to user installation because normal site-packages is not writeable
Collecting thriftpy2
  Using cached thriftpy2-0.4.12.tar.gz (356 kB)
Requirement already satisfied: ply<4.0,>=3.4 in /usr/lib/python3.6/site-packages (from thriftpy2) (3.9)
Building wheels for collected packages: thriftpy2
  Building wheel for thriftpy2 (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xof573ek/thriftpy2_a6f27656530249cc883bad409b02c0b6/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xof573ek/thriftpy2_a6f27656530249cc883bad409b02c0b6/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 /tmp/pip-wheel-_loyb3ks
       cwd: /tmp/pip-install-xof573ek/thriftpy2_a6f27656530249cc883bad409b02c0b6/
  Complete output (96 lines):
  running bdist_wheel
  The [wheel] section is deprecated. Use [bdist_wheel] instead.
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.6
  creating build/lib.linux-x86_64-3.6/thriftpy2
  copying thriftpy2/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2
  copying thriftpy2/_compat.py -> build/lib.linux-x86_64-3.6/thriftpy2
  copying thriftpy2/hook.py -> build/lib.linux-x86_64-3.6/thriftpy2
  copying thriftpy2/http.py -> build/lib.linux-x86_64-3.6/thriftpy2
  copying thriftpy2/rpc.py -> build/lib.linux-x86_64-3.6/thriftpy2
  copying thriftpy2/server.py -> build/lib.linux-x86_64-3.6/thriftpy2
  copying thriftpy2/thrift.py -> build/lib.linux-x86_64-3.6/thriftpy2
  copying thriftpy2/tornado.py -> build/lib.linux-x86_64-3.6/thriftpy2
  copying thriftpy2/utils.py -> build/lib.linux-x86_64-3.6/thriftpy2
  creating build/lib.linux-x86_64-3.6/thriftpy2/contrib
  copying thriftpy2/contrib/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib
  creating build/lib.linux-x86_64-3.6/thriftpy2/parser
  copying thriftpy2/parser/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/parser
  copying thriftpy2/parser/exc.py -> build/lib.linux-x86_64-3.6/thriftpy2/parser
  copying thriftpy2/parser/lexer.py -> build/lib.linux-x86_64-3.6/thriftpy2/parser
  copying thriftpy2/parser/parser.py -> build/lib.linux-x86_64-3.6/thriftpy2/parser
  creating build/lib.linux-x86_64-3.6/thriftpy2/protocol
  copying thriftpy2/protocol/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
  copying thriftpy2/protocol/base.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
  copying thriftpy2/protocol/binary.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
  copying thriftpy2/protocol/compact.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
  copying thriftpy2/protocol/exc.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
  copying thriftpy2/protocol/json.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
  copying thriftpy2/protocol/multiplex.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
  creating build/lib.linux-x86_64-3.6/thriftpy2/transport
  copying thriftpy2/transport/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport
  copying thriftpy2/transport/_ssl.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport
  copying thriftpy2/transport/base.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport
  copying thriftpy2/transport/socket.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport
  copying thriftpy2/transport/sslsocket.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport
  creating build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
  copying thriftpy2/contrib/aio/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
  copying thriftpy2/contrib/aio/client.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
  copying thriftpy2/contrib/aio/processor.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
  copying thriftpy2/contrib/aio/rpc.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
  copying thriftpy2/contrib/aio/server.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
  copying thriftpy2/contrib/aio/socket.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
  creating build/lib.linux-x86_64-3.6/thriftpy2/contrib/tracking
  copying thriftpy2/contrib/tracking/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/tracking
  copying thriftpy2/contrib/tracking/tracker.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/tracking
  creating build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/protocol
  copying thriftpy2/contrib/aio/protocol/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/protocol
  copying thriftpy2/contrib/aio/protocol/base.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/protocol
  copying thriftpy2/contrib/aio/protocol/binary.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/protocol
  copying thriftpy2/contrib/aio/protocol/compact.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/protocol
  creating build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/transport
  copying thriftpy2/contrib/aio/transport/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/transport
  copying thriftpy2/contrib/aio/transport/base.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/transport
  copying thriftpy2/contrib/aio/transport/buffered.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/transport
  copying thriftpy2/contrib/aio/transport/framed.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/transport
  creating build/lib.linux-x86_64-3.6/thriftpy2/transport/buffered
  copying thriftpy2/transport/buffered/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport/buffered
  creating build/lib.linux-x86_64-3.6/thriftpy2/transport/framed
  copying thriftpy2/transport/framed/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport/framed
  creating build/lib.linux-x86_64-3.6/thriftpy2/transport/memory
  copying thriftpy2/transport/memory/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport/memory
  running egg_info
  writing thriftpy2.egg-info/PKG-INFO
  writing dependency_links to thriftpy2.egg-info/dependency_links.txt
  writing requirements to thriftpy2.egg-info/requires.txt
  writing top-level names to thriftpy2.egg-info/top_level.txt
  reading manifest file 'thriftpy2.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  writing manifest file 'thriftpy2.egg-info/SOURCES.txt'
  creating build/lib.linux-x86_64-3.6/thriftpy2/protocol/cybin
  copying thriftpy2/protocol/cybin/cybin.c -> build/lib.linux-x86_64-3.6/thriftpy2/protocol/cybin
  copying thriftpy2/protocol/cybin/cybin.pyx -> build/lib.linux-x86_64-3.6/thriftpy2/protocol/cybin
  copying thriftpy2/protocol/cybin/endian_port.h -> build/lib.linux-x86_64-3.6/thriftpy2/protocol/cybin
  copying thriftpy2/transport/cybase.c -> build/lib.linux-x86_64-3.6/thriftpy2/transport
  copying thriftpy2/transport/cybase.pxd -> build/lib.linux-x86_64-3.6/thriftpy2/transport
  copying thriftpy2/transport/cybase.pyx -> build/lib.linux-x86_64-3.6/thriftpy2/transport
  copying thriftpy2/contrib/tracking/tracking.thrift -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/tracking
  copying thriftpy2/transport/buffered/cybuffered.c -> build/lib.linux-x86_64-3.6/thriftpy2/transport/buffered
  copying thriftpy2/transport/buffered/cybuffered.pyx -> build/lib.linux-x86_64-3.6/thriftpy2/transport/buffered
  copying thriftpy2/transport/framed/cyframed.c -> build/lib.linux-x86_64-3.6/thriftpy2/transport/framed
  copying thriftpy2/transport/framed/cyframed.pyx -> build/lib.linux-x86_64-3.6/thriftpy2/transport/framed
  copying thriftpy2/transport/memory/cymemory.c -> build/lib.linux-x86_64-3.6/thriftpy2/transport/memory
  copying thriftpy2/transport/memory/cymemory.pyx -> build/lib.linux-x86_64-3.6/thriftpy2/transport/memory
  running build_ext
  building 'thriftpy2.transport.cybase' extension
  creating build/temp.linux-x86_64-3.6
  creating build/temp.linux-x86_64-3.6/thriftpy2
  creating build/temp.linux-x86_64-3.6/thriftpy2/transport
  gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python3.6m -c thriftpy2/transport/cybase.c -o build/temp.linux-x86_64-3.6/thriftpy2/transport/cybase.o
  thriftpy2/transport/cybase.c:17:10: fatal error: Python.h: No such file or directory
   #include "Python.h"
            ^~~~~~~~~~
  compilation terminated.
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for thriftpy2
  Running setup.py clean for thriftpy2
Failed to build thriftpy2
Installing collected packages: thriftpy2
    Running setup.py install for thriftpy2 ... error
    ERROR: Command errored out with exit status 1:
     command: /bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xof573ek/thriftpy2_a6f27656530249cc883bad409b02c0b6/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xof573ek/thriftpy2_a6f27656530249cc883bad409b02c0b6/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-y28fgtla/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/bambooagent/.local/include/python3.6m/thriftpy2
         cwd: /tmp/pip-install-xof573ek/thriftpy2_a6f27656530249cc883bad409b02c0b6/
    Complete output (95 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/thriftpy2
    copying thriftpy2/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2
    copying thriftpy2/_compat.py -> build/lib.linux-x86_64-3.6/thriftpy2
    copying thriftpy2/hook.py -> build/lib.linux-x86_64-3.6/thriftpy2
    copying thriftpy2/http.py -> build/lib.linux-x86_64-3.6/thriftpy2
    copying thriftpy2/rpc.py -> build/lib.linux-x86_64-3.6/thriftpy2
    copying thriftpy2/server.py -> build/lib.linux-x86_64-3.6/thriftpy2
    copying thriftpy2/thrift.py -> build/lib.linux-x86_64-3.6/thriftpy2
    copying thriftpy2/tornado.py -> build/lib.linux-x86_64-3.6/thriftpy2
    copying thriftpy2/utils.py -> build/lib.linux-x86_64-3.6/thriftpy2
    creating build/lib.linux-x86_64-3.6/thriftpy2/contrib
    copying thriftpy2/contrib/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib
    creating build/lib.linux-x86_64-3.6/thriftpy2/parser
    copying thriftpy2/parser/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/parser
    copying thriftpy2/parser/exc.py -> build/lib.linux-x86_64-3.6/thriftpy2/parser
    copying thriftpy2/parser/lexer.py -> build/lib.linux-x86_64-3.6/thriftpy2/parser
    copying thriftpy2/parser/parser.py -> build/lib.linux-x86_64-3.6/thriftpy2/parser
    creating build/lib.linux-x86_64-3.6/thriftpy2/protocol
    copying thriftpy2/protocol/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
    copying thriftpy2/protocol/base.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
    copying thriftpy2/protocol/binary.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
    copying thriftpy2/protocol/compact.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
    copying thriftpy2/protocol/exc.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
    copying thriftpy2/protocol/json.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
    copying thriftpy2/protocol/multiplex.py -> build/lib.linux-x86_64-3.6/thriftpy2/protocol
    creating build/lib.linux-x86_64-3.6/thriftpy2/transport
    copying thriftpy2/transport/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport
    copying thriftpy2/transport/_ssl.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport
    copying thriftpy2/transport/base.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport
    copying thriftpy2/transport/socket.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport
    copying thriftpy2/transport/sslsocket.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport
    creating build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
    copying thriftpy2/contrib/aio/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
    copying thriftpy2/contrib/aio/client.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
    copying thriftpy2/contrib/aio/processor.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
    copying thriftpy2/contrib/aio/rpc.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
    copying thriftpy2/contrib/aio/server.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
    copying thriftpy2/contrib/aio/socket.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio
    creating build/lib.linux-x86_64-3.6/thriftpy2/contrib/tracking
    copying thriftpy2/contrib/tracking/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/tracking
    copying thriftpy2/contrib/tracking/tracker.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/tracking
    creating build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/protocol
    copying thriftpy2/contrib/aio/protocol/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/protocol
    copying thriftpy2/contrib/aio/protocol/base.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/protocol
    copying thriftpy2/contrib/aio/protocol/binary.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/protocol
    copying thriftpy2/contrib/aio/protocol/compact.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/protocol
    creating build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/transport
    copying thriftpy2/contrib/aio/transport/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/transport
    copying thriftpy2/contrib/aio/transport/base.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/transport
    copying thriftpy2/contrib/aio/transport/buffered.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/transport
    copying thriftpy2/contrib/aio/transport/framed.py -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/aio/transport
    creating build/lib.linux-x86_64-3.6/thriftpy2/transport/buffered
    copying thriftpy2/transport/buffered/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport/buffered
    creating build/lib.linux-x86_64-3.6/thriftpy2/transport/framed
    copying thriftpy2/transport/framed/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport/framed
    creating build/lib.linux-x86_64-3.6/thriftpy2/transport/memory
    copying thriftpy2/transport/memory/__init__.py -> build/lib.linux-x86_64-3.6/thriftpy2/transport/memory
    running egg_info
    writing thriftpy2.egg-info/PKG-INFO
    writing dependency_links to thriftpy2.egg-info/dependency_links.txt
    writing requirements to thriftpy2.egg-info/requires.txt
    writing top-level names to thriftpy2.egg-info/top_level.txt
    reading manifest file 'thriftpy2.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'thriftpy2.egg-info/SOURCES.txt'
    creating build/lib.linux-x86_64-3.6/thriftpy2/protocol/cybin
    copying thriftpy2/protocol/cybin/cybin.c -> build/lib.linux-x86_64-3.6/thriftpy2/protocol/cybin
    copying thriftpy2/protocol/cybin/cybin.pyx -> build/lib.linux-x86_64-3.6/thriftpy2/protocol/cybin
    copying thriftpy2/protocol/cybin/endian_port.h -> build/lib.linux-x86_64-3.6/thriftpy2/protocol/cybin
    copying thriftpy2/transport/cybase.c -> build/lib.linux-x86_64-3.6/thriftpy2/transport
    copying thriftpy2/transport/cybase.pxd -> build/lib.linux-x86_64-3.6/thriftpy2/transport
    copying thriftpy2/transport/cybase.pyx -> build/lib.linux-x86_64-3.6/thriftpy2/transport
    copying thriftpy2/contrib/tracking/tracking.thrift -> build/lib.linux-x86_64-3.6/thriftpy2/contrib/tracking
    copying thriftpy2/transport/buffered/cybuffered.c -> build/lib.linux-x86_64-3.6/thriftpy2/transport/buffered
    copying thriftpy2/transport/buffered/cybuffered.pyx -> build/lib.linux-x86_64-3.6/thriftpy2/transport/buffered
    copying thriftpy2/transport/framed/cyframed.c -> build/lib.linux-x86_64-3.6/thriftpy2/transport/framed
    copying thriftpy2/transport/framed/cyframed.pyx -> build/lib.linux-x86_64-3.6/thriftpy2/transport/framed
    copying thriftpy2/transport/memory/cymemory.c -> build/lib.linux-x86_64-3.6/thriftpy2/transport/memory
    copying thriftpy2/transport/memory/cymemory.pyx -> build/lib.linux-x86_64-3.6/thriftpy2/transport/memory
    running build_ext
    building 'thriftpy2.transport.cybase' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/thriftpy2
    creating build/temp.linux-x86_64-3.6/thriftpy2/transport
    gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python3.6m -c thriftpy2/transport/cybase.c -o build/temp.linux-x86_64-3.6/thriftpy2/transport/cybase.o
    thriftpy2/transport/cybase.c:17:10: fatal error: Python.h: No such file or directory
     #include "Python.h"
              ^~~~~~~~~~
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xof573ek/thriftpy2_a6f27656530249cc883bad409b02c0b6/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xof573ek/thriftpy2_a6f27656530249cc883bad409b02c0b6/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-y28fgtla/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/bambooagent/.local/include/python3.6m/thriftpy2 Check the logs for full command output.
aisk commented 3 years ago

You can try to fix this by using stackoverflow: https://stackoverflow.com/questions/21530577/fatal-error-python-h-no-such-file-or-directory