当前位置: 首页 > 知识库问答 >
问题:

在windows上使用apache mod_wsgi运行flask应用程序时发生导入冲突

温开畅
2023-03-14

我允许你问一个问题,我有与你的mod_wsgi在windows上的移植托管烧瓶应用程序

我有两个烧瓶申请,由于进口冲突,只有一个可以同时活着

ie:如果请求应用程序1,我有一个响应,那么如果请求应用程序2,我有内部服务器错误,日志中有错误。。。然后,如果我重新启动apache并请求应用程序2,我会有一个响应,但如果我请求应用程序1,我会有相同的内部服务器错误,如果我评论一些导入,如numpy,则两个应用程序可以同时处于活动状态

如果您对这个问题有任何想法、链接或答案,我们将不胜感激?

我的安装描述如下

提前感谢你的巡演时间和你的作品

亚历山大

错误日志mod\u wsgi(pid=4936):无法执行Python脚本文件D:/exec/Apache24/htdocs/wsgi/api\u test\u 2。wsgi’ 异常。wsgi’<回溯(最后一次调用): 文件“D:/exec/Apache24/htdocs/wsgi/api\u test\u 2.wsgi”,第3行,从api\u test\u 2导入应用程序作为应用程序
文件“D:/exec/wsgi\u api/api\u test\u 2.py”,第2行,导入numpy
文件“c:\python\python36\lib\site packages\numpy\u init\uuuupy”,第142行,在
中。来自。导入核心文件“c:\python\python36\lib\site packages\numpy\core\uu init\uuuu.py”,第16行。从导入多数组文件“c:\python\python36\lib\site packages\numpy\core\multiarray.py”,第12行。导入覆盖文件“c:\python\python36\lib\site packages\numpy\core\overrides.py”,第46行,in“RuntimeError:implement\u array\u function方法已经有docstring

#---------------------------------
# file : D:/exec/wsgi_api/api_test_1/api_test_1.py    
#---------------------------------
from flask import Flask, jsonify,render_template, request, make_response
import numpy
app = Flask(__name__)
@app.route('/')
def home():
    resp = make_response("hello from 1", 200)
    resp.headers['Content-Type'] = 'charset=utf-8'
    return resp
#---------------------------------        

#---------------------------------
# file : D:/exec/wsgi_api/api_test_2/api_test_2.py    
#---------------------------------
from flask import Flask, jsonify,render_template, request, make_response
import numpy
app = Flask(__name__)    
@app.route('/')
def home():
    resp = make_response("hello from 2", 200)
    resp.headers['Content-Type'] = 'charset=utf-8'
    return resp
if __name__ == '__main__':
    app.run(host='127.0.0.1', port=36000)
#---------------------------------

我在appache httpdocs中有两个wsgi文件

#---------------------------------
# file : D:/exec/Apache24/htdocs/wsgi/api_test_1.wsgi
#---------------------------------
import sys 
sys.path.append('D:/exec/wsgi_api/api_test_1/') 
from api_test_1 import app as application
#---------------------------------


#---------------------------------
# file : D:/exec/Apache24/htdocs/wsgi/api_test_2.wsgi
#---------------------------------
import sys 
sys.path.append('D:/exec/wsgi_api/api_test_1/') 
from api_test_1 import app as application
#---------------------------------


#---------------------------------
In D:/exec/Apache24/conf/httpd.conf i add the line
#---------------------------------
WSGIScriptAlias /api_test_1 "D:/exec/Apache24/htdocs/wsgi/api_test_1.wsgi"
WSGIScriptAlias /api_test_2 "D:/exec/Apache24/htdocs/wsgi/api_test_2.wsgi"
#---------------------------------

共有3个答案

赵永逸
2023-03-14

尝试将其放入WSGI配置文件中:

single-interpreter = true
倪子晋
2023-03-14

我在mod_wsgi邮件列表上进行了讨论,我得到了相同的回答,解释是numpy在Python子解释器中不起作用,因为C扩展模块没有正确实现,因此对于mod_wsgi,您只能在“WSGIApplicationGroup%{GLOBAL}”指令强制的主解释器上下文中使用numpy

这与主题有关https://github.com/numpy/numpy/issues/3961

凌智
2023-03-14

我在一个项目中遇到了类似的问题。就我而言,我必须在我网站的. conf文件中添加WSGIApplication ationGroup%{GLOBAL}

这是我找到信息的文档:
https://modwsgi.readthedocs.io/en/develop/user-guides/checking-your-installation.html#sub-正在使用的解释器

 类似资料:
  • 问题内容: 我有一个现有的Flask应用程序,并且想找到通往另一个应用程序的路线。更具体地说,第二个应用程序是Plotly Dash应用程序。如何在现有的Flask应用程序中运行Dash应用程序? 我还尝试将路由添加到Dash实例,因为它是Flask应用程序,但出现错误: 问题答案: 从文档: 基本的Flask应用程序可从访问app.server。 你还可以将自己的Flask应用实例传递到Dash

  • 当我发布windows窗体应用程序时,它在我开发它的机器上运行良好。但当我把它放在另一台笔记本电脑上就不工作了。双击.exe文件不会出错,也不会发生任何事情我的应用程序中有一个本地数据库。连接字符串为“data source=(LocalDB)\mssqllocaldb;attachdbfilename=datadirectory\database1.mdf;integrated security

  • 问题内容: 我正在尝试围绕我的烧瓶应用程序为办公室中的菜鸟创建一个简单的tkinter GUI窗口。我希望脚本按以下顺序执行这些任务: 启动Flask Web服务器 用一个按钮打开一个tkinter GUI窗口。当按下时,该按钮将打开应用程序的索引页面(例如http://127.0.0.1:5000) 关闭tkinter gui窗口时终止flask Web服务器 到目前为止,这是我所拥有的,但是该

  • 问题内容: 我有一个包含Java应用程序的JAR文件。如何使它从Windows开始而不需要用户交互? 问题答案: 创建一个.bat文件,并将其放入其中: 然后将.bat文件放入Windows启动文件夹。 还有一件事:使用java和javaw之间是有区别的。虽然在调试应用程序时使用Java更好,但应用程序会打印文本或类似内容,而在不需要时,javaw则更好。为什么?因为java使用控制台显示所有应用

  • 我有一个包含Java应用程序的JAR文件。如何在不需要用户交互的情况下从Windows开始?

  • 我意识到这个问题(Windows容器可以托管在Linux上吗?),但它并没有真正回答我的问题。 我是Docker的新手,但我的问题是这样的--如果我把任何windows应用程序放在Docker容器中,它现在能在Linux上运行吗?反之亦然? Confluent声称它只能在linux上运行,但我的同事使用Docker在Windows上安装了它。所以如果你能用Docker安装它,那么整个应用程序肯定会