当前位置: 首页 > 面试题库 >

尝试编译C扩展模块时缺少Python.h

司徒浩思
2023-03-14
问题内容

我正在按照本教程讲解如何使用C\ C ++代码扩展Python。

名为“使用Microsoft Windows的GCC构建扩展模块”部分对我来说失败,并出现以下错误:

fatal error: Python.h: No such file or directory

名为“使用Microsoft Visual C ++构建扩展模块”的部分也失败,并显示类似错误:

fatal error C1083: Cannot open include file: 'Python.h': No such file or directory

我应该怎么做才能解决这个问题?


问题答案:
  1. 您是否拥有python dev文件,以便可以找到Python.h?
  2. 您是否已将Python.h的位置指定给编译器?使用gcc时,通常是通过-I路径来完成的。

找出其中哪些失败将解决您的问题。

从您链接的文章中:

gcc -c hellomodule.c -I / PythonXY / include

gcc-共享的hellomodule.o -L / PythonXY / libs -lpythonXY -o hello.dll

他们假定您将python安装在默认位置c:\ pythonXY(其中X是主要版本号,Y是次要版本号)。它。



 类似资料:
  • 当使用原生 MicroPython 进行开发时,你可能会遇到这样一些限制,比如官方没有实现自己想要的功能,或者你觉得这些实现不符合自己的工作需求。此时,添加自己的 C 模块到 MicroPython 中是一个不错的选择,你可以按照自己的想法,设计适合自己的 Python 函数调用。 为了帮助各位开发者快速添加 C 模块,RT-Thread 提供了相应的辅助工具 C 绑定代码自动生成器。该工具可以帮

  • 我正在开发一个包(模块?)设计为pip安装。该包包含一个C扩展,使用pybind11包装,它链接到其他一些库。 我能够手动编译和链接扩展库,没有问题,但是我无法正确配置我的文件,以便在调用时安装扩展模块。 我一直遵循这段代码(pybind11文档链接到)来配置我的文件,包含在下面。 为完整起见,我的包目录如下所示: 我按如下方式调用pip3安装: (版本检查被禁用,因为机器无法访问互联网)。 我可

  • 问题内容: 我想修改setup.py文件,以便命令“ python setup.py build”编译基于C的扩展模块,该模块静态(而非动态)链接到库。 该扩展程序当前动态链接到许多库。除了静态链接到一个库外,我想保留所有内容。我已经成功地通过手动修改了对distutils运行的gcc的调用来完成了此操作,尽管它要求我明确列出相关库。 也许这是太多信息,但是为了清楚起见,这是在“ python s

  • C.1 编译与安装 环境要求 操作系统:目前Nginx各版本在以下操作系统和平台测试通过: FreeBSD 3 — 10 / i386; FreeBSD 5 — 10 / amd64; Linux 2.2 — 3 / i386; Linux 2.6 — 3 / amd64; Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v; AIX

  • 问题 你想不依靠其他工具,直接使用Python的扩展API来编写一些简单的C扩展模块。 解决方案 对于简单的C代码,构建一个自定义扩展模块是很容易的。 作为第一步,你需要确保你的C代码有一个正确的头文件。例如: /* sample.h */ #include <math.h> extern int gcd(int, int); extern int in_mandel(double x0, d

  • 扩展说明 Java 代码编译器,用于动态生成字节码,加速调用。 扩展接口 org.apache.dubbo.common.compiler.Compiler 扩展配置 自动加载 已知扩展 org.apache.dubbo.common.compiler.support.JdkCompiler org.apache.dubbo.common.compiler.support.JavassistCom