ERROR
pip
build_error
ai_generated
true
error: subprocess-exited-with-error: python setup.py egg_info did not run successfully. exit code: 1. Cython.Compiler.Errors.CompileError: /tmp/pip-install-xxx/package/src/foo.pyx:1:0: 'bar.pxd' not found
ID: pip/egg-info-failure-requires-cython
75%Fix Rate
85%Confidence
1Evidence
2024-03-15First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| pip 23.2 | active | — | — | — |
| pip 24.0 | active | — | — | — |
| setuptools 68.0 | active | — | — | — |
| Cython 3.0.8 | active | — | — | — |
Root Cause
The package requires a Cython extension file (.pxd) that is missing from the source distribution, often because it is generated by a build script that was not run before packaging.
generic中文
该软件包需要一个 Cython 扩展文件(.pxd),但该文件在源代码分发包中缺失,通常是因为生成该文件的构建脚本在打包前未运行。
Official Documentation
https://pip.pypa.io/en/stable/topics/build-system/Workarounds
-
85% success Install the package from its VCS repository (e.g., git) which includes the build script that generates the .pxd file: pip install git+https://github.com/user/package.git
Install the package from its VCS repository (e.g., git) which includes the build script that generates the .pxd file: pip install git+https://github.com/user/package.git
-
70% success Patch the source distribution by downloading the .tar.gz, extracting it, running the build script (e.g., python setup.py build_ext --inplace) to generate the missing .pxd, then repackaging and installing with pip install ./package-version.tar.gz
Patch the source distribution by downloading the .tar.gz, extracting it, running the build script (e.g., python setup.py build_ext --inplace) to generate the missing .pxd, then repackaging and installing with pip install ./package-version.tar.gz
-
30% success Contact the package maintainer to request a fixed source distribution or wheel that includes the missing .pxd file.
Contact the package maintainer to request a fixed source distribution or wheel that includes the missing .pxd file.
中文步骤
从版本控制系统(如 git)安装该软件包,其中包含生成 .pxd 文件的构建脚本:pip install git+https://github.com/user/package.git
修补源代码分发包:下载 .tar.gz,解压,运行构建脚本(如 python setup.py build_ext --inplace)生成缺失的 .pxd,然后重新打包并用 pip install ./package-version.tar.gz 安装。
联系软件包维护者,请求发布包含缺失 .pxd 文件的固定源代码分发包或 wheel。
Dead Ends
Common approaches that don't work:
-
Manually creating a dummy .pxd file with the same name in the package directory
95% fail
The .pxd file has specific type declarations and interfaces that must match the .pyx file; a dummy file will cause compilation errors or silent failures.
-
Running pip install --no-build-isolation to use system Cython
90% fail
The missing .pxd is not a Cython version issue; it's a missing source file that no Cython version can generate without the original build script.
-
Installing the package from a pre-built wheel instead of source
70% fail
If the package maintainer did not publish a wheel for the platform/Python version, this option is not available.