我在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,并且由于某些随机子模块而导致导入错误。
答案 0 :(得分:0)
我有同样的问题,我仍然无法解决,但是我发现您的虚拟主机的主机号是:80,它变为:5000,请告诉我您是否能解决它
答案 1 :(得分:0)
好吧,好像我刚添加
WSGIApplicationGroup %{GLOBAL}
它将起作用,因为它将迫使应用程序使用给定的解释器。 我以为该设置仅适用于linux。但是幸运的是,它也适用于Windows!