我正在尝试在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
SO上的mod_wsgi troubleshoot section和其他文章(1,2,3)表示要安装正确版本的python-dev。已经基于以下输出完成了此操作。运行3.6.7的python3,并且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帖子(4),但由于我 am 能够找到Python.h,因此我认为这不适用于我。
$ locate Python.h
/usr/include/python3.6m/Python.h
我不确定下一步该怎么做。已安装Python3.6-dev,我可以找到Python.h,但是make
无法定位。我正在使用Pycharm自动为我创建的venv,我有预感,这个问题涉及到该问题,但是我不确定该如何应对。我在make
和python3
的同一终端上运行apt-get
,因此它们应该使用相同的环境变量(据我了解)。
任何人对下一步的建议吗?
答案 0 :(得分:3)
为了补充上面的答案(因为我很固执),我会注意到您必须安装 const path = require("path");
module.exports = {
webpack: {
alias: {
"@app": path.resolve(__dirname, "src"),
}
}
};
包(这是提供 python[3]-dev
的包)。在 ubuntu 上,Python.h
帮我解决了这个问题。
答案 1 :(得分:0)
我为mod_wsgi运行了./configure
,并看到了输出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
。现在运行make
成功了。
后来我发现这是安装mod_wsgi的更艰难的方法。我最后跟随this tecadmin guide,它说要运行命令sudo apt-get install libapache2-mod-wsgi
。这就是我所做的,mod_wsgi现在正在使用apache。