如果在 Windows 上导入 python 包,Apache 将无法工作

Apache doesn't work if importing python packages on Windows

我在 Windows 上使用 mod_wsgi、python 3.7 设置了一个 apache 服务器。 我使用 anaconda 发行版。

如果我call mod_wsgi-express module-config

我明白了: LoadFile "c:/programdata/anaconda3/envs/processing/python37.dll" LoadModule wsgi_module "c:/programdata/anaconda3/envs/processing/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd" WSGIPythonHome "c:/programdata/anaconda3/envs/processing/" 所以我确实把它放在了 httpd.conf 中。然后在 httpd-vhosts.conf 我有这个:<VirtualHost *:80> ServerName localhost WSGIScriptAlias / C:\Source\PreProcessAPI\web.wsgi DocumentRoot "C:\Source\PreProcessAPI" <Directory "C:\Source\PreProcessAPI"> Require all granted </Directory> </VirtualHost>

我的 web.wsgi 看起来像这样:

import sys
sys.path.append("C:/Source/PreProcessAPI/")  

from t import app as application

我的 Flask 应用程序如下所示:

from flask import Flask,request





#%%init
app = Flask(__name__)


#%%Root Get
@app.route('/',methods=['GET'])
def hello():
    return "hello"

#%%Main
if __name__ == '__main__':

    app.run(host='0.0.0.0',port=5000)

而且它是这样工作的,很好。但如果我导入其他任何东西,即导入 pandas。 然后整个服务器看起来就像闲置一样。它只是不断加载页面,并没有将任何内容放入日志文件。 如果我在激活处理环境后只是 运行 我的烧瓶应用程序,那么它也可以与包一起使用。

据我所知,windows 的文档很少。希望有人能帮忙。

更新: 如果我将 mod_wsgi 安装到基础环境中,并将 运行 与包含在 httpd.conf 中的模块一起安装,那么我会收到导入错误,但是来自模块内部。即它开始导入 numpy 并且它有一些随机子模块的导入错误。

好的,看来我只是添加

WSGIApplicationGroup %{GLOBAL}

它会起作用,因为它会强制应用程序使用给定的解释器。 我以为这个设置只适用于 linux.. 但幸运的是它也适用于 windows!