Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add python 3.12 support #3495

Closed
terriko opened this issue Oct 31, 2023 · 4 comments · Fixed by #3766
Closed

feat: add python 3.12 support #3495

terriko opened this issue Oct 31, 2023 · 4 comments · Fixed by #3766
Milestone

Comments

@terriko
Copy link
Contributor

terriko commented Oct 31, 2023

Python 3.12 has been out for almost a month and we'll definitely want to support it as soon as possible (though I'm intending to finish out hacktoberfest and get the 3.3 release out first).

I'm opening up this issue for notes about where we're at on the support:

Feel free to work on python 3.12 support! Just be aware that we know of at least the two blockers above, so it won't be an easy enabling task (yet).

@terriko terriko added this to the future milestone Oct 31, 2023
@terriko
Copy link
Contributor Author

terriko commented Oct 31, 2023

aiohttp build error during install:

 × Building wheel for aiohttp (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [173 lines of output]
      *********************
      * Accelerated build *
      *********************
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-312
      creating build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/multipart.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/connector.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/payload.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_middlewares.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/http_parser.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_response.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/typedefs.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/abc.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/client_proto.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/http_websocket.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/hdrs.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/base_protocol.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_ws.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_request.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/client_ws.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/http_writer.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/test_utils.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_routedef.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/__init__.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_log.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/payload_streamer.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/http.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/cookiejar.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/client_exceptions.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/log.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/client.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_app.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/locks.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/streams.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_runner.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_protocol.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_fileresponse.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/formdata.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/tracing.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/worker.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/pytest_plugin.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/helpers.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/http_exceptions.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_server.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_urldispatcher.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/resolver.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/client_reqrep.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_exceptions.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/tcp_helpers.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      running egg_info
      writing aiohttp.egg-info/PKG-INFO
      writing dependency_links to aiohttp.egg-info/dependency_links.txt
      writing requirements to aiohttp.egg-info/requires.txt
      writing top-level names to aiohttp.egg-info/top_level.txt
      reading manifest file 'aiohttp.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no files found matching 'aiohttp' anywhere in distribution
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files matching '*.pyd' found anywhere in distribution
      warning: no previously-included files matching '*.so' found anywhere in distribution
      warning: no previously-included files matching '*.lib' found anywhere in distribution
      warning: no previously-included files matching '*.dll' found anywhere in distribution
      warning: no previously-included files matching '*.a' found anywhere in distribution
      warning: no previously-included files matching '*.obj' found anywhere in distribution
      warning: no previously-included files found matching 'aiohttp/*.html'
      no previously-included directories found matching 'docs/_build'
      adding license file 'LICENSE.txt'
      writing manifest file 'aiohttp.egg-info/SOURCES.txt'
      copying aiohttp/_cparser.pxd -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_find_header.pxd -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_headers.pxi -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_helpers.pyi -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_helpers.pyx -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_http_parser.pyx -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_http_writer.pyx -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_websocket.pyx -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/py.typed -> build/lib.linux-x86_64-cpython-312/aiohttp
      creating build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_cparser.pxd.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_find_header.pxd.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_helpers.pyi.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_helpers.pyx.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_http_parser.pyx.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_http_writer.pyx.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_websocket.pyx.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/hdrs.py.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      running build_ext
      building 'aiohttp._websocket' extension
      creating build/temp.linux-x86_64-cpython-312
      creating build/temp.linux-x86_64-cpython-312/aiohttp
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12 -c aiohttp/_websocket.c -o build/temp.linux-x86_64-cpython-312/aiohttp/_websocket.o
      aiohttp/_websocket.c: In function__pyx_pf_7aiohttp_10_websocket__websocket_mask_cython’:
      aiohttp/_websocket.c:1475:3: warning: ‘Py_OptimizeFlagis deprecated [-Wdeprecated-declarations]
       1475 |   if (unlikely(!Py_OptimizeFlag)) {
            |   ^~
      In file included from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/Python.h:48,
                       from aiohttp/_websocket.c:6:
      /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/cpython/pydebug.h:13:37: note: declared here
         13 | Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag;
            |                                     ^~~~~~~~~~~~~~~
      aiohttp/_websocket.c: In function__Pyx_get_tp_dict_version’:
      aiohttp/_websocket.c:2680:5: warning: ‘ma_version_tagis deprecated [-Wdeprecated-declarations]
       2680 |     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
            |     ^~~~~~
      In file included from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/dictobject.h:90,
                       from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/Python.h:61,
                       from aiohttp/_websocket.c:6:
      /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      aiohttp/_websocket.c: In function__Pyx_get_object_dict_version’:
      aiohttp/_websocket.c:2692:5: warning: ‘ma_version_tagis deprecated [-Wdeprecated-declarations]
       2692 |     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
            |     ^~~~~~
      In file included from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/dictobject.h:90,
                       from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/Python.h:61,
                       from aiohttp/_websocket.c:6:
      /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      aiohttp/_websocket.c: In function__Pyx_object_dict_version_matches’:
      aiohttp/_websocket.c:2696:5: warning: ‘ma_version_tagis deprecated [-Wdeprecated-declarations]
       2696 |     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
            |     ^~
      In file included from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/dictobject.h:90,
                       from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/Python.h:61,
                       from aiohttp/_websocket.c:6:
      /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      aiohttp/_websocket.c: In function__Pyx_CLineForTraceback’:
      aiohttp/_websocket.c:2741:9: warning: ‘ma_version_tagis deprecated [-Wdeprecated-declarations]
       2741 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/dictobject.h:90,
                       from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/Python.h:61,
                       from aiohttp/_websocket.c:6:
      /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      aiohttp/_websocket.c:2741:9: warning: ‘ma_version_tagis deprecated [-Wdeprecated-declarations]
       2741 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/dictobject.h:90,
                       from /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/Python.h:61,
                       from aiohttp/_websocket.c:6:
      /opt/hostedtoolcache/Python/3.12.0/x64/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      aiohttp/_websocket.c: In function__Pyx_PyInt_As_long’:
      aiohttp/_websocket.c:3042:53: error: ‘PyLongObject’ {akastruct _longobject’} has no member namedob_digit3042 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      aiohttp/_websocket.c:3097:53: error: ‘PyLongObject’ {akastruct _longobject’} has no member namedob_digit3097 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      aiohttp/_websocket.c: In function__Pyx_PyInt_As_int’:
      aiohttp/_websocket.c:3238:53: error: ‘PyLongObject’ {akastruct _longobject’} has no member namedob_digit3238 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      aiohttp/_websocket.c:3293:53: error: ‘PyLongObject’ {akastruct _longobject’} has no member namedob_digit3293 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      aiohttp/_websocket.c: In function__Pyx_PyIndex_AsSsize_t’:
      aiohttp/_websocket.c:3744:45: error: ‘PyLongObject’ {akastruct _longobject’} has no member namedob_digit3744 |     const digit* digits = ((PyLongObject*)b)->ob_digit;
            |                                             ^~
      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 aiohttp
  Building wheel for gsutil (setup.py): started
  Building wheel for gsutil (setup.py): finished with status 'done'
  Created wheel for gsutil: filename=gsutil-5.27-py3-none-any.whl size=3785291 sha256=e3b75639a5481863abfd450881dfcab520e539d37ad1f0e52ded8f91f9f5d43e
  Stored in directory: /home/runner/.cache/pip/wheels/79/5d/24/295f53457a54c150d2fafcb00de932139d62298df47d2436ad
  Building wheel for zstandard (pyproject.toml): started
  Building wheel for zstandard (pyproject.toml): finished with status 'done'
  Created wheel for zstandard: filename=zstandard-0.21.0-cp312-cp312-linux_x86_64.whl size=2598490 sha256=7e391736b5d1dd11a4c025d6bdf641184a747d5ca6a03e8ec3957bbc54feafe1
  Stored in directory: /home/runner/.cache/pip/wheels/16/f6/e1/a1ceb83a481f93a465266d7faa313238bf66ce7b642b37743e
  Building wheel for crcmod (setup.py): started
  Building wheel for crcmod (setup.py): finished with status 'done'
  Created wheel for crcmod: filename=crcmod-1.7-cp312-cp312-linux_x86_64.whl size=31870 sha256=b36e39c65054ee7c418526edf0825e65eb493e363305e43bf4d243f009f32841
  Stored in directory: /home/runner/.cache/pip/wheels/76/08/0b/caa8b1380122cbfe6a03eaccbec0f63c67e619af4e30ca5e2a
  Building wheel for frozenlist (pyproject.toml): started
  Building wheel for frozenlist (pyproject.toml): finished with status 'done'
  Created wheel for frozenlist: filename=frozenlist-1.4.0-cp312-cp312-linux_x86_64.whl size=259854 sha256=f8f097ce118608ecb8ae1401cf3895be677cc27f76e64a5b3361a5c1a0577ae2
  Stored in directory: /home/runner/.cache/pip/wheels/f1/9c/94/9386cb0ea511a93226456388d41d35f1c24ba15a62ffd7b1ef
  Building wheel for gcs-oauth2-boto-plugin (setup.py): started
  Building wheel for gcs-oauth2-boto-plugin (setup.py): finished with status 'done'
  Created wheel for gcs-oauth2-boto-plugin: filename=gcs_oauth2_boto_plugin-3.0-py3-none-any.whl size=23213 sha256=dabe790d700b8c0159b867fad2518b0950fb567a83336c63c612dbf01b2dcd21
  Stored in directory: /home/runner/.cache/pip/wheels/2e/f4/59/149f2d9fd2ef659df5f2c70e0e49af02cc85d0ee054c046351
  Building wheel for multidict (pyproject.toml): started
  Building wheel for multidict (pyproject.toml): finished with status 'done'
  Created wheel for multidict: filename=multidict-6.0.4-cp312-cp312-linux_x86_64.whl size=118665 sha256=c01b425df3274f895d624ed456703fbbe07f68d333fe923df4f85761e3616946
  Stored in directory: /home/runner/.cache/pip/wheels/f6/d8/ff/3c14a64b8f2ab1aa94ba2888f5a988be6ab446ec5c8d1a82da
  Building wheel for retry_decorator (setup.py): started
  Building wheel for retry_decorator (setup.py): finished with status 'done'
  Created wheel for retry_decorator: filename=retry_decorator-1.1.1-py2.py3-none-any.whl size=3635 sha256=6affc11a2de99e8294c149e00cba50766a439f032af0e5cad48154ca676f8937
  Stored in directory: /home/runner/.cache/pip/wheels/47/d8/ff/f25b34f7d273518501f5926d0dd2565fddff96a49c8da82122
  Building wheel for yarl (pyproject.toml): started
  Building wheel for yarl (pyproject.toml): finished with status 'done'
  Created wheel for yarl: filename=yarl-1.9.2-cp312-cp312-linux_x86_64.whl size=286108 sha256=e0b6696683c77b45bcd2c5ab09176631ed331ac9dd988b44dfd9f14fe8168964
  Stored in directory: /home/runner/.cache/pip/wheels/84/e3/6a/7d0fa1abee8e4aa39922b5bd54689b4b5e4269b2821f482a32
  Building wheel for pyu2f (setup.py): started
  Building wheel for pyu2f (setup.py): finished with status 'done'
  Created wheel for pyu2f: filename=pyu2f-0.1.5-py3-none-any.whl size=39403 sha256=d34635f5d49b2c94a09891807b03b3e9b07e705261dff3ed38d264955b059866
  Stored in directory: /home/runner/.cache/pip/wheels/c8/65/96/5db9bc4a34b1f0200f3cfaf6e675effad84f4d7b167e548c34
Successfully built cve-bin-tool gsutil zstandard crcmod frozenlist gcs-oauth2-boto-plugin multidict retry_decorator yarl pyu2f
Failed to build aiohttp
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects

@milinddethe15
Copy link
Contributor

python 3.12 build error for multidict

× Building wheel for multidict (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [81 lines of output]
      *********************
      * Accelerated build *
      *********************
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-312
      creating build/lib.linux-x86_64-cpython-312/multidict
      copying multidict/_compat.py -> build/lib.linux-x86_64-cpython-312/multidict
      copying multidict/_abc.py -> build/lib.linux-x86_64-cpython-312/multidict
      copying multidict/_multidict_base.py -> build/lib.linux-x86_64-cpython-312/multidict
      copying multidict/__init__.py -> build/lib.linux-x86_64-cpython-312/multidict
      copying multidict/_multidict_py.py -> build/lib.linux-x86_64-cpython-312/multidict
      running egg_info
      writing multidict.egg-info/PKG-INFO
      writing dependency_links to multidict.egg-info/dependency_links.txt
      writing top-level names to multidict.egg-info/top_level.txt
      reading manifest file 'multidict.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files found matching 'multidict/_multidict.html'
      warning: no previously-included files found matching 'multidict/*.so'
      warning: no previously-included files found matching 'multidict/*.pyd'
      warning: no previously-included files found matching 'multidict/*.pyd'
      no previously-included directories found matching 'docs/_build'
      adding license file 'LICENSE'
      writing manifest file 'multidict.egg-info/SOURCES.txt'
      /tmp/pip-build-env-nsh2bm8r/overlay/lib/python3.12/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'multidict._multilib' is absent from the `packages` configuration.
      !!
      
              ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'multidict._multilib' 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 'multidict._multilib' 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 'multidict._multilib' to be distributed and are
              already explicitly excluding 'multidict._multilib' 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)
      copying multidict/__init__.pyi -> build/lib.linux-x86_64-cpython-312/multidict
      copying multidict/py.typed -> build/lib.linux-x86_64-cpython-312/multidict
      running build_ext
      building 'multidict._multidict' extension
      creating build/temp.linux-x86_64-cpython-312
      creating build/temp.linux-x86_64-cpython-312/multidict
      x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/mint/Code/venv3.12/include -I/usr/include/python3.12 -c multidict/_multidict.c -o build/temp.linux-x86_64-cpython-312/multidict/_multidict.o -O2 -std=c99 -Wall -Wsign-compare -Wconversion -fno-strict-aliasing -pedantic
      multidict/_multidict.c:1:10: fatal error: Python.h: No such file or directory
          1 | #include "Python.h"
            |          ^~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/x86_64-linux-gnu-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 multidict
  Building wheel for retry-decorator (pyproject.toml) ... done
  Created wheel for retry-decorator: filename=retry_decorator-1.1.1-py2.py3-none-any.whl size=3639 sha256=01ac4a2d1756984603c09a19b2e7d87abc5aff0d57d4db67ef96f94bbcc43f14
  Stored in directory: /home/mint/.cache/pip/wheels/47/d8/ff/f25b34f7d273518501f5926d0dd2565fddff96a49c8da82122
  Building wheel for pyu2f (pyproject.toml) ... done
  Created wheel for pyu2f: filename=pyu2f-0.1.5-py3-none-any.whl size=39404 sha256=6953c4bcdc019724509bed6857bdb58843cddc5a403abb4581951dd39b1fcc38
  Stored in directory: /home/mint/.cache/pip/wheels/c8/65/96/5db9bc4a34b1f0200f3cfaf6e675effad84f4d7b167e548c34
Successfully built cve-bin-tool gsutil crcmod gcs-oauth2-boto-plugin retry-decorator pyu2f
Failed to build multidict
ERROR: Could not build wheels for multidict, which is required to install pyproject.toml-based projects

@milinddethe15
Copy link
Contributor

installed python3.12-dev and built was successful.

sudo apt-get install python3.12-dev

@terriko
Copy link
Contributor Author

terriko commented Jan 22, 2024

@milinddethe15 Huh, that's interesting. I'd really prefer it if we didn't need the -dev package just to pip install but I'm not up to changing dependencies around to avoid it just yet and that's such a simple solution that we could at least get python 3.12 tests up and running now by just changing a line in the Github Actions ymls.

terriko added a commit that referenced this issue Jan 30, 2024
* fixes: #3495

Co-authored-by: milinddethe15 <[email protected]>
Signed-off-by: Terri Oda <[email protected]>
inosmeet pushed a commit to inosmeet/cve-bin-tool that referenced this issue Feb 6, 2024
* fixes: intel#3495

Co-authored-by: milinddethe15 <[email protected]>
Signed-off-by: Terri Oda <[email protected]>
inosmeet pushed a commit to inosmeet/cve-bin-tool that referenced this issue Feb 16, 2024
* fixes: intel#3495

Co-authored-by: milinddethe15 <[email protected]>
Signed-off-by: Terri Oda <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants