如果在Windows上导入python软件包,则Apache无法正常工作

时间:2019-11-11 15:45:48

标签: python windows apache mod-wsgi

我在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,并且由于某些随机子模块而导致导入错误。

2 个答案:

答案 0 :(得分:0)

我有同样的问题,我仍然无法解决,但是我发现您的虚拟主机的主机号是:80,它变为:5000,请告诉我您是否能解决它

答案 1 :(得分:0)

好吧,好像我刚添加

WSGIApplicationGroup %{GLOBAL}

它将起作用,因为它将迫使应用程序使用给定的解释器。 我以为该设置仅适用于linux。但是幸运的是,它也适用于Windows!