Thriftpy / thriftpy2

Pure python approach of Apache Thrift.
MIT License
567 stars 90 forks source link

can not pip install on python 3.7 #231

Closed tingxin closed 8 months ago

tingxin commented 8 months ago

i lanuch a aws ec2 with python 3.7 and then:

pip install cython thriftpy2

output is here, cound anyone take a look :

Requirement already satisfied: cython in /home/ec2-user/pyevn/stat/lib/python3.7/site-packages (3.0.5) Collecting thriftpy2 Using cached thriftpy2-0.4.17.tar.gz (519 kB) Installing build dependencies ... done WARNING: Missing build requirements in pyproject.toml for thriftpy2 from https://files.pythonhosted.org/packages/1d/5c/852a627317a75e0ec19f42b955ef115b0906c43ee4c7595c112a652f0b20/thriftpy2-0.4.17.tar.gz#sha256=190f35c32da9146d1fdd822f46b6a0ad543572ea405ca6853b4ec7b128efbc0d. WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'wheel'. Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done Collecting ply<4.0,>=3.4 Using cached ply-3.11-py2.py3-none-any.whl (49 kB) Requirement already satisfied: six~=1.15 in /home/ec2-user/pyevn/stat/lib/python3.7/site-packages (from thriftpy2) (1.16.0) Building wheels for collected packages: thriftpy2 Building wheel for thriftpy2 (pyproject.toml) ... error error: subprocess-exited-with-error

× Building wheel for thriftpy2 (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [139 lines of output] 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-cpython-37 creating build/lib.linux-x86_64-cpython-37/thriftpy2 copying thriftpy2/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2 copying thriftpy2/_compat.py -> build/lib.linux-x86_64-cpython-37/thriftpy2 copying thriftpy2/hook.py -> build/lib.linux-x86_64-cpython-37/thriftpy2 copying thriftpy2/http.py -> build/lib.linux-x86_64-cpython-37/thriftpy2 copying thriftpy2/rpc.py -> build/lib.linux-x86_64-cpython-37/thriftpy2 copying thriftpy2/server.py -> build/lib.linux-x86_64-cpython-37/thriftpy2 copying thriftpy2/thrift.py -> build/lib.linux-x86_64-cpython-37/thriftpy2 copying thriftpy2/tornado.py -> build/lib.linux-x86_64-cpython-37/thriftpy2 copying thriftpy2/utils.py -> build/lib.linux-x86_64-cpython-37/thriftpy2 creating build/lib.linux-x86_64-cpython-37/thriftpy2/contrib copying thriftpy2/contrib/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib creating build/lib.linux-x86_64-cpython-37/thriftpy2/parser copying thriftpy2/parser/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/parser copying thriftpy2/parser/exc.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/parser copying thriftpy2/parser/lexer.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/parser copying thriftpy2/parser/parser.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/parser creating build/lib.linux-x86_64-cpython-37/thriftpy2/protocol copying thriftpy2/protocol/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol copying thriftpy2/protocol/apache_json.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol copying thriftpy2/protocol/base.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol copying thriftpy2/protocol/binary.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol copying thriftpy2/protocol/compact.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol copying thriftpy2/protocol/exc.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol copying thriftpy2/protocol/json.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol copying thriftpy2/protocol/multiplex.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol creating build/lib.linux-x86_64-cpython-37/thriftpy2/transport copying thriftpy2/transport/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport copying thriftpy2/transport/_ssl.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport copying thriftpy2/transport/base.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport copying thriftpy2/transport/socket.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport copying thriftpy2/transport/sslsocket.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport creating build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio copying thriftpy2/contrib/aio/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio copying thriftpy2/contrib/aio/client.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio copying thriftpy2/contrib/aio/processor.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio copying thriftpy2/contrib/aio/rpc.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio copying thriftpy2/contrib/aio/server.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio copying thriftpy2/contrib/aio/socket.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio creating build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/tracking copying thriftpy2/contrib/tracking/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/tracking copying thriftpy2/contrib/tracking/tracker.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/tracking creating build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio/protocol copying thriftpy2/contrib/aio/protocol/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio/protocol copying thriftpy2/contrib/aio/protocol/base.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio/protocol copying thriftpy2/contrib/aio/protocol/binary.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio/protocol copying thriftpy2/contrib/aio/protocol/compact.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio/protocol creating build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio/transport copying thriftpy2/contrib/aio/transport/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio/transport copying thriftpy2/contrib/aio/transport/base.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio/transport copying thriftpy2/contrib/aio/transport/buffered.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio/transport copying thriftpy2/contrib/aio/transport/framed.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/aio/transport creating build/lib.linux-x86_64-cpython-37/thriftpy2/transport/buffered copying thriftpy2/transport/buffered/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport/buffered creating build/lib.linux-x86_64-cpython-37/thriftpy2/transport/framed copying thriftpy2/transport/framed/init.py -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport/framed creating build/lib.linux-x86_64-cpython-37/thriftpy2/transport/memory copying thriftpy2/transport/memory/init.py -> build/lib.linux-x86_64-cpython-37/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' adding license file 'LICENSE' writing manifest file 'thriftpy2.egg-info/SOURCES.txt' creating build/lib.linux-x86_64-cpython-37/thriftpy2/protocol/cybin copying thriftpy2/protocol/cybin/cybin.c -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol/cybin copying thriftpy2/protocol/cybin/cybin.pyx -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol/cybin copying thriftpy2/protocol/cybin/endian_port.h -> build/lib.linux-x86_64-cpython-37/thriftpy2/protocol/cybin copying thriftpy2/transport/cybase.c -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport copying thriftpy2/transport/cybase.pxd -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport copying thriftpy2/transport/cybase.pyx -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport copying thriftpy2/contrib/tracking/tracking.thrift -> build/lib.linux-x86_64-cpython-37/thriftpy2/contrib/tracking copying thriftpy2/transport/buffered/cybuffered.c -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport/buffered copying thriftpy2/transport/buffered/cybuffered.pyx -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport/buffered copying thriftpy2/transport/framed/cyframed.c -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport/framed copying thriftpy2/transport/framed/cyframed.pyx -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport/framed copying thriftpy2/transport/memory/cymemory.c -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport/memory copying thriftpy2/transport/memory/cymemory.pyx -> build/lib.linux-x86_64-cpython-37/thriftpy2/transport/memory running build_ext building 'thriftpy2.transport.cybase' extension creating build/temp.linux-x86_64-cpython-37 creating build/temp.linux-x86_64-cpython-37/thriftpy2 creating build/temp.linux-x86_64-cpython-37/thriftpy2/transport gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/home/ec2-user/pyevn/stat/include -I/usr/include/python3.7m -c thriftpy2/transport/cybase.c -o build/temp.linux-x86_64-cpython-37/thriftpy2/transport/cybase.o thriftpy2/transport/cybase.c:29:10: fatal error: Python.h: No such file or directory

include "Python.h"

            ^~~~~~~~~~
  compilation terminated.
  /tmp/pip-build-env-svupcb6c/overlay/lib/python3.7/site-packages/setuptools/command/build_py.py:201: _Warning: Package 'thriftpy2.protocol.cybin' is absent from the `packages` configuration.
  !!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'thriftpy2.protocol.cybin' as an importable package[^1],
          but it is absent from setuptools' `packages` configuration.

          This leads to an ambiguous overall configuration. If you want to distribute this
          package, please make sure that 'thriftpy2.protocol.cybin' is explicitly added
          to the `packages` configuration field.

          Alternatively, you can also rely on setuptools' discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

          If you don't want 'thriftpy2.protocol.cybin' to be distributed and are
          already explicitly excluding 'thriftpy2.protocol.cybin' via
          `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
          you can try to use `exclude_package_data`, or `include-package-data=False` in
          combination with a more fine grained `package-data` configuration.

          You can read more about "package data files" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/datafiles.html

          [^1]: For Python, any directory (with suitable naming) can be imported,
                even if it does not contain any `.py` files.
                On the other hand, currently there is no concept of package data
                directory, all directories are treated like packages.
          ********************************************************************************

  !!
    check.warn(importable)
  error: command '/usr/bin/gcc' failed with exit code 1
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for thriftpy2 Failed to build thriftpy2 ERROR: Could not build wheels for thriftpy2, which is required to install pyproject.toml-based projects

aisk commented 8 months ago

This is not related to thriftpy. Please search "Python.h: No such file or directory" on Google.