Fatal error: Python.h no such file or directory - but python-dev is already installed

Fatal error: Python.h no such file or directory - but python-dev is already installed

我正在尝试在 Ubuntu 上安装 mod_wsgi。当 运行 "sudo make" 命令 as described on the mod_wsgi website 我收到错误:

src/server/wsgi_python.h:24:10: fatal error: Python.h: No such file or directory

mod_wsgi troubleshoot section and other posts on SO (1,2,) 说要安装正确版本的python-dev。这已经基于以下输出完成。 Python3 运行 3.6.7 和 apt-get 说 python3-dev 是最新版本的 3.6.7.

$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 

$ sudo apt-get install python3-dev
...
python3-dev is already the newest version (3.6.7-1~18.04).
0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.

因此 Python.h 文件似乎存在,但 make 找不到。我看了这个 SO post (4) 但我认为它不适用于我,因为我 am 能够找到 Python.h.

$ locate Python.h
/usr/include/python3.6m/Python.h

我不确定接下来该去哪里。 Python3.6-dev 已安装,我可以找到 Python.h,但 make 找不到。我正在使用 Pycharm 自动为我创建的 venv,我有预感它与问题有关,但我不确定如何跟进这个预感。我 运行 makepython3apt-get 在同一个终端上,所以他们应该使用相同的环境变量(我的理解)。

任何人对后续步骤有什么建议吗?

我 运行 ./configure for mod_wsgi 并看到了输出 checking for python... /usr/bin/python。当我 运行 locate Python.h 它给了我 /usr/include/python3.6m/Python.h。所以看起来配置找到了 python 的错误版本。然后我按照 the mod_wsgi documentation 的建议 运行 ./configure --with-python=/usr/bin/python3.6m。现在 运行ning make 成功了。

我后来发现这是安装 mod_wsgi 更难的方法。我最终只是按照 this tecadmin guide 对 运行 命令 sudo apt-get install libapache2-mod-wsgi 说的。这就是我所做的,mod_wsgi 现在正在使用 apache。

要补充上面的答案(因为我很固执),我会注意到您必须安装 python[3]-dev 包(这是提供 Python.h 的包)。 ubuntu,apt install python3-dev 帮我解决了这个问题。