首页 > 解决方案 > 如果在 Windows 上导入 python 包,Apache 不起作用

问题描述

我在 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

我的烧瓶应用程序如下所示:

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)

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

如我所见,Windows 的文档很少。希望有人可以提供帮助。

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

标签: pythonwindowsapachemod-wsgi

解决方案


好的,如果我只是添加

WSGIApplicationGroup %{GLOBAL}

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


推荐阅读