致命错误: Python.h文件或目录不存在 - 但python-dev已经安装完成。

10 浏览
0 Comments

致命错误: Python.h文件或目录不存在 - 但python-dev已经安装完成。

我正在尝试在Ubuntu上安装mod_wsgi。按照mod_wsgi网站上的描述,当我运行“sudo make”命令时,我收到以下错误信息:

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

根据mod_wsgi故障排除部分和其他Stack Overflow帖子(1,2,3),它们说要安装正确版本的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却找不到它。我查看了这个Stack Overflow帖子(4),但我认为它并不适用于我,因为我能够找到Python.h。

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

我不确定接下来该怎么办。Python3.6-dev已经安装,并且我可以找到Python.h,但是make却找不到。我正在使用Pycharm自动为我创建的venv,并且我有一种直觉它与问题有关,但是我不确定如何进一步跟进这个直觉。我在同一个终端上运行makepython3apt-get,所以它们应该使用相同的环境变量(我的理解是这样的)。

有没有人对下一步有什么建议?

0
0 Comments

在安装mod_wsgi的过程中,我运行了./configure命令,并看到输出结果为checking for python... /usr/bin/python。当我运行locate Python.h命令时,它给出了/usr/include/python3.6m/Python.h的结果。因此看起来配置文件找到了错误版本的python。根据mod_wsgi的文档建议,我运行了./configure --with-python=/usr/bin/python3.6m命令。现在运行make命令成功了。

后来我发现这种安装mod_wsgi的方法比较复杂。我最终按照tecadmin的指南进行操作,该指南建议运行命令sudo apt-get install libapache2-mod-wsgi。我按照这个方法进行了操作,现在mod_wsgi已经与apache一起正常工作了。

0
0 Comments

在解决"Fatal error: Python.h no such file or directory - but python-dev is already installed"问题之前,需要确保已经安装了`python[3]-dev`软件包,这个软件包提供了`Python.h`头文件。在Ubuntu系统中,可以通过运行`apt install python3-dev`命令来安装该软件包。

我解决了我的问题,通过安装python-dev来使用一个仅适用于Python 2的脚本。

0