MagicStack / MagicStack/httptools
pip install failing for pypy3.11
まだ誰も着手していません。
- 主要言語
- Python
- スター
- 1.3k
- フォーク
- 107
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
`pip install httptools==0.6.4` fails under pypy3.11 with the log output below.
The issue is the Cython generated C files bundled with the release in pypi, similar to this [one for lxml](https://bugs.launchpad.net/lxml/+bug/2098055). In fact installing directly from the 0.6.4 commit works fine: `pip install git+https://github.com/MagicStack/httptools@e265ae0`.
The suggested fix there is to build a release with the 3.1 release of Cython which has this fix: https://github.com/cython/cython/pull/6482
# how to reproduce
if you have docker, this is probably the easiest way to reproduce:
```bash
docker run -it --entrypoint=/bin/bash pypy:3.11-7.3.19 -c 'pip install httptools==0.6.4'
```
# logs from unsuccessful install
```
Collecting httptools
Using cached httptools-0.6.4.tar.gz (240 kB)
Preparing metadata (setup.py) ... done
Building wheels for collected packages: httptools
Building wheel for httptools (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [39 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-pypy311
creating build/lib.linux-x86_64-pypy311/httptools
copying httptools/_version.py -> build/lib.linux-x86_64-pypy311/httptools
copying httptools/__init__.py -> build/lib.linux-x86_64-pypy311/httptools
creating build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/__init__.py -> build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/errors.py -> build/lib.linux-x86_64-pypy311/httptools/parser
running egg_info
writing httptools.egg-info/PKG-INFO
writing dependency_links to httptools.egg-info/dependency_links.txt
writing requirements to httptools.egg-info/requires.txt
writing top-level names to httptools.egg-info/top_level.txt
reading manifest file 'httptools.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'httptools.egg-info/SOURCES.txt'
copying httptools/parser/cparser.pxd -> build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/parser.pyx -> build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/python.pxd -> build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/url_cparser.pxd -> build/lib.linux-x86_64-pypy311/httptools/parser
copying httptools/parser/url_parser.pyx -> build/lib.linux-x86_64-pypy311/httptools/parser
running build_ext
building 'httptools.parser.parser' extension
creating build/temp.linux-x86_64-pypy311
creating build/temp.linux-x86_64-pypy311/httptools
creating build/temp.linux-x86_64-pypy311/httptools/parser
creating build/temp.linux-x86_64-pypy311/vendor
creating build/temp.linux-x86_64-pypy311/vendor/llhttp
creating build/temp.linux-x86_64-pypy311/vendor/llhttp/src
gcc -pthread -DNDEBUG -O2 -fPIC -I/tmp/pip-install-9p4wcs3b/httptools_a1fc635d910f47dfbfa0906126b6038e/vendor/llhttp/include -I/tmp/pip-install-9p4wcs3b/httptools_a1fc635d910f47dfbfa0906126b6038e/vendor/llhttp/src -I/home/oliver/Projects/lxml/venv/include -I/usr/include/pypy3.11 -c httptools/parser/parser.c -o build/temp.linux-x86_64-pypy311/httptools/parser/parser.o -O2
httptools/parser/parser.c:15388:12: fatal error: internal/pycore_frame.h: No such file or directory
15388 | #include "internal/pycore_frame.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
```
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
提供された Docker コマンドで失敗を再現し、commit e265ae0 からのインストールと比較します。release 0.6.4 が生成された C ファイルをどのようにバンドルしているかを調査し、release が Cython 3.1 を使用していることを確認します。指定された PyPy 3.11 イメージで `pip install httptools==0.6.4` が成功すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- build-system
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- 明確に書かれている
- 初心者へのやさしさ
- 45/100