ets-labs / python-dependency-injector

Dependency injection framework for Python
https://python-dependency-injector.ets-labs.org/
BSD 3-Clause "New" or "Revised" License
3.89k stars 304 forks source link

Python 3.11 support #632

Closed gen-xu closed 1 year ago

gen-xu commented 1 year ago

python 3.11 is released on 2022-10-24 this Monday. Current pip install with Python 3.11 fails and gives this failure

      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-311
      creating build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/__init__.py -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/schema.py -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/wiring.py -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/resources.py -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/errors.py -> build/lib.linux-x86_64-cpython-311/dependency_injector
      creating build/lib.linux-x86_64-cpython-311/dependency_injector/ext
      copying src/dependency_injector/ext/__init__.py -> build/lib.linux-x86_64-cpython-311/dependency_injector/ext
      copying src/dependency_injector/ext/aiohttp.py -> build/lib.linux-x86_64-cpython-311/dependency_injector/ext
      copying src/dependency_injector/ext/flask.py -> build/lib.linux-x86_64-cpython-311/dependency_injector/ext
      copying src/dependency_injector/containers.pxd -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/providers.pxd -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/providers.pyi -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/__init__.pyi -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/containers.pyi -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/py.typed -> build/lib.linux-x86_64-cpython-311/dependency_injector
      running build_ext
      building 'dependency_injector.containers' extension
      creating build/temp.linux-x86_64-cpython-311
      creating build/temp.linux-x86_64-cpython-311/src
      creating build/temp.linux-x86_64-cpython-311/src/dependency_injector
      gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -I/usr/local/include/python3.11 -c src/dependency_injector/containers.c -o build/temp.linux-x86_64-cpython-311/src/dependency_injector/containers.o -O2
      src/dependency_injector/containers.c:198:12: fatal error: longintrepr.h: No such file or directory
        198 |   #include "longintrepr.h"
            |            ^~~~~~~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]
theobouwman commented 1 year ago

I am getting this issue with tiangolo/uvicorn-gunicorn:python3.11-slim:

    creating build/temp.linux-x86_64-cpython-311/src/dependency_injector
#8 53.96       gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -I/usr/local/include/python3.11 -c src/dependency_injector/containers.c -o build/temp.linux-x86_64-cpython-311/src/dependency_injector/containers.o -O2
#8 53.96       error: command 'gcc' failed: No such file or directory
#8 53.96       [end of output]
#8 53.96   
#8 53.96   note: This error originates from a subprocess, and is likely not a problem with pip.
#8 53.96 error: legacy-install-failure
#8 53.96 
#8 53.96 × Encountered error while trying to install package.
#8 53.96 ╰─> dependency-injector
#8 53.96 
rmk135 commented 1 year ago

Added Python 3.11 support in 4.41.0. Thanks @gen-xu for the help!