Support for python 3.11

未关闭
#98 1 条评论 2 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
c, python
领域
backend

调研方向

首先复现 Python 3.11 的 pip install 命令,并检查 setup.py、http_parser/http_parser.c 和 http_parser/parser.c 中与扩展构建相关的部分。确认失败是由于包不兼容,还是由于缺少 Python.h 开发头文件,然后验证在 Python 3.11 上安装能够成功完成。

由索引模型根据 Issue 内容生成。

描述

Hi,

Looks like the pip install for python 3.11 is failing with the below error

Is it because there is no support for python3.11?

Please help me overcome this issue.

Thanks in advance.

http-parser$ python3.11 -m pip install http-parser
Defaulting to user installation because normal site-packages is not writeable
Collecting http-parser
  Using cached http-parser-0.9.0.tar.gz (167 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: http-parser
  Building wheel for http-parser (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [25 lines of output]
      /tmp/pip-install-87f67s16/http-parser_70fb4870541b4fc9ac3bfe953fb58d23/setup.py:12: DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses
        from imp import load_source
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-3.11
      creating build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/__init__.py -> build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/reader.py -> build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/util.py -> build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/_socketio.py -> build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/pyparser.py -> build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/http.py -> build/lib.linux-x86_64-3.11/http_parser
      running build_ext
      building 'http_parser.parser' extension
      creating build/temp.linux-x86_64-3.11
      creating build/temp.linux-x86_64-3.11/http_parser
      x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Iparser -I/usr/include/python3.11 -c http_parser/http_parser.c -o build/temp.linux-x86_64-3.11/http_parser/http_parser.o
      x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Iparser -I/usr/include/python3.11 -c http_parser/parser.c -o build/temp.linux-x86_64-3.11/http_parser/parser.o
      http_parser/parser.c:4:10: fatal error: Python.h: No such file or directory
          4 | #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 http-parser
  Running setup.py clean for http-parser
Failed to build http-parser
Installing collected packages: http-parser
  Running setup.py install for http-parser ... error
  error: subprocess-exited-with-error
  
  × Running setup.py install for http-parser did not run successfully.
  │ exit code: 1
  ╰─> [27 lines of output]
      /tmp/pip-install-87f67s16/http-parser_70fb4870541b4fc9ac3bfe953fb58d23/setup.py:12: DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses
        from imp import load_source
      running install
      /usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-3.11
      creating build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/__init__.py -> build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/reader.py -> build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/util.py -> build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/_socketio.py -> build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/pyparser.py -> build/lib.linux-x86_64-3.11/http_parser
      copying http_parser/http.py -> build/lib.linux-x86_64-3.11/http_parser
      running build_ext
      building 'http_parser.parser' extension
      creating build/temp.linux-x86_64-3.11
      creating build/temp.linux-x86_64-3.11/http_parser
      x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Iparser -I/usr/include/python3.11 -c http_parser/http_parser.c -o build/temp.linux-x86_64-3.11/http_parser/http_parser.o
      x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Iparser -I/usr/include/python3.11 -c http_parser/parser.c -o build/temp.linux-x86_64-3.11/http_parser/parser.o
      http_parser/parser.c:4:10: fatal error: Python.h: No such file or directory
          4 | #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: legacy-install-failure

× Encountered error while trying to install package.
╰─> http-parser

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
主要语言
C
星标
345
派生
93
PR 合并指标
30 天内没有已合并 PR

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

benoitc/http-parser 的其他 Issue

查看 benoitc/http-parser 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。