python - 如果在 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 并且它有一些随机子模块的导入错误。
解决方案
好的,如果我只是添加
WSGIApplicationGroup %{GLOBAL}
它将起作用,因为它将强制应用程序使用给定的解释器。我认为这个设置只适用于 linux.. 但幸运的是它也适用于 windows!
推荐阅读
- numpy - 加快对给定数组的每个索引值应用转换
- assembly - 大会 x86 - 使消息框出现 5 次
- amazon-web-services - 使用 docker golang sdk 删除我的 AWS ECR 映像
- python - 如何根据tensorflow 1.10中的张量值将(m,50)张量减少为(m,25)张量
- javascript - Vue如何根据间隔触发点击链接
- automated-tests - 如何在 WSO2 平台上实现 SMSOTP 的自动化测试
- c++ - 算法陷入循环
- python - pyspark线程池执行器日志管理
- java - 为动态按钮添加基本的点击动画
- android - 在数据库和实体列中添加类型转换器后,无法在房间数据库中保存整数列表