最新比较无聊,想做点之前没有涉猎过的领域,比如:使用 C 或 C++ 扩展 Python
但是我遇到了一个问题,在我的 macbook m1 上面,我用 clion 起了一个 c project,然后我想使用 #include <Python.h>
的时候,发现有红色波浪线
可以看到,显示 Python.h file not found
我该如何解决?
在这台电脑上,我安装了很多个 python 解释器版本:
- python 官方下载的 python3.9、python3.10,通过
macOS 64-bit universal2 installer
安装
- mac 自带的 python3.8
- 使用 brew 安装的 python3.9
一共有 4 个 python 解释器
有如何几个问题:
Python.h
有 python 版本有关系吗?比如 python3.8 和 3.9 分别有自己的Python.h
,互不兼容- 一个电脑上有多个 python 解释器,如何让 clion 可以调用
Python.h
? - 如何不是 mac 平台,而是 linux 平台,又该如何?(同样多个 python 解释器版本共存)
网上针对 Linux 平台会通过类似 sudo apt install python-dev
来解决找不到 Python.h
问题,但是这种方式只能解决的是 Linux 发行版自带的 Python 的 Python.h
找到问题。
比如 ubuntu18 是 python3.6;ubuntu20 是 python3.8
但是我们实际在 linux 使用 python 的解释器都是自己编译安装的(参考:Ubuntu20.04 从源代码编译安装 python3.10 ),所以这个 sudo apt install python-dev
并不是一种通用解?
解决找不到Python.h的错误
步骤:首先找到Python.h文件的位置,然后根据所使用的IDE的导入头文件规则添加该头文件路径
可以看到我电脑装了多个不同版本的python
😂你可以把上面找到的任意Python.h 添加到下面的includePath的中,
但如果你要为2.7版的python添加C扩展你就使用python2.7下面的Python.h文件;也就是说要对应起来
执行locate Python.h 没有任何输出怎么办?
你应该安装 python-dev 或者你需要为需要扩展功能的python安装对应的 dev package:
其他
问
: Python.h 有 python 版本有关系吗?比如 python3.8 和 3.9 分别有自己的 Python.h,互不兼容答
: Python.h 有 python 版本有关系;python3.8和3.9分别有自己的Python.h且应该互不兼容问
: 一个电脑上有多个python解释器,如何让clion可以调用 Python.h?答
: 尝试上面的步骤,并且在clion的配置中把Pyton.h添加到IncludePython(我对clion也不太熟悉
)问
:如过不是mac平台,而是linux平台,又该如何?(同样多个python解释器版本共存)答
: 原理一样,操作时命令估计有差别.以上内容源自Solved: GCC cannot find "Python.h