You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python源分发包中包含C语言头文件?

解决C头文件无法被Python源分发包包含的问题

你遇到的核心问题是:sdist 默认不会自动包含你的C头文件和源文件,导致安装阶段编译器找不到factorial.h。下面是具体的解决步骤:

1. 创建MANIFEST.in文件显式指定打包文件

在项目根目录下新建一个MANIFEST.in文件,内容如下:

include factorial.h
include factorial.c

这个文件的作用是告诉setuptools,在生成源分发包时必须包含这两个C相关文件——它们不属于setuptools默认打包的文件类型,所以需要手动声明。

2. 修正build.py中的路径配置

你build.py里的include_dirs=[" "]是无效的空格路径,编译器无法通过这个路径定位到头文件,需要修改为当前目录:

ffibuilder.set_source(
    module_name="_example",
    source=SOURCE,
    sources=["factorial.c"],
    include_dirs=["."],  # 修改为当前目录
    library_dirs=["."],
)

3. 重新生成并安装分发包

执行以下命令重新构建和安装:

python setup.py sdist
pip install dist/example-0.1.tar.gz

这样修改后,头文件和C源文件就会被正确包含进源分发包,安装时编译器就能顺利找到factorial.h了。

内容的提问来源于stack exchange,提问作者Prokie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 13:48:15