致命错误: Python.h文件或目录不存在 - 但python-dev已经安装完成。
致命错误: 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,并且我有一种直觉它与问题有关,但是我不确定如何进一步跟进这个直觉。我在同一个终端上运行make
,python3
和apt-get
,所以它们应该使用相同的环境变量(我的理解是这样的)。
有没有人对下一步有什么建议?
在安装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一起正常工作了。