我大致遵循此部署指南 for烧瓶.当我通过UWSGI启动我的应用程序时,我会收到错误: ***操作模式:预叉*** 无法加载应用程序0(MountPoint ='')(找不到COLLABLE或导入错误) ***没有加载应用程序.以完整的动态模式*** 这与其他如此问题,所以这是一个Python路径问题,但我仍然无法运行我的应用程序.这是我的设置: /home/btw/prod/ .... app.py .... inits.py .... templates/ .... wsgi.py .... prod.ini .... env/
以下是关于 wsgi 的编程技术问答
我正在使用 gunicorn 运行我的烧瓶生产中的网站.一切都很好,但是部署更新时,我总是停止并再次启动服务器.我现在读到有关此 reload flag "在代码更改时重新启动工人"根据文档的说法是" 用于开发".如果我可以在生产中使用它,则可以防止在部署时停止和重启枪支. 我不应该在生产中使用自动重加载的原因是什么? 解决方案 重新加载旗可以用于生产中,基本上它可以在重新启动枪支时手动执行的操作. 不在生产中使用自动积分的基本原因是,您损害了服务对第三方的可靠性,而无需从您的角度进行任何控制. 想象一下,您的服务通过新代码不断更新.其中一些可能是越野车并打破用户体验,您将无法防止这种情况.另一方面,如果您一天中多次更新应用程序,您的用户可能会在白天多次丢失数据/经验不佳.
我正在尝试在Heroku上运行我的Django应用程序. 文件夹结构: app/ Procfile docs/ ... project/ manage.py wsgi.py procfile web: gunicorn --pythonpath="$PWD/project" wsgi:application --log-file=- 错误我得到: 2015-02-16T16:05:00.646316+00:00 heroku[web.1]: Starting process with command `gunicorn --pythonpath="$PWD/project" wsgi:application --log-file=-` 2015-02-16T16:05:02.697633+00:00 app[web.1]: [2015-02-16 16:05:02 +0000] [3] [
您可以提供 wsgi wsgi 我无法理解的目的引入start_response (我已经阅读了关于WSGI标准的10个相同的文本.他们都说" WSGI标准是...",他们都没有说" WSGI"是为了. .":() 解决方案 您可以提供WSGI start_response()函数的真实示例吗? 好吧, mod_wsgi 的start_response()函数是在 mod_wgsi.c 他们都没有说" WSGI是为了……为了……" 在 PEP3333 PEP3333 .查看 web-sig邮件列表档案,我遇到 前一段时间我反对删除start_response的决定 下一个版本WSGI的功能,将其作为理由 没有start_colable,异步扩展是不可能的 支持. 现在,我发现删除start_response也会做出 不可能支持Coroutines(或者至少是某些Coroutines 用法). [...] ...在实现这一部分的基本原
是否有烧瓶或jinja2配置标志/扩展名来自动缩小html输出?渲染模板? 解决方案 在这里看看 https://github.com/cobrateam/django-htmlmin#使用the-html_minify-function 我意识到它主要用于django,但该示例显示了如何使用此项目代码来使用烧瓶视图来完成您想要的操作. 其他解决方案 找到了一种更好的方法.您可以使用此方法缩小所有页面: from flask import Flask from htmlmin.main import minify app = Flask(__name__) @app.after_request def response_minify(response): """ minify html response to decrease site traffic """ if response.content_type == u't
web2py book states 管理接口,Admin,仅可从Localhost访问 除非您使用mod_proxy在Apache后面运行Web2py.如果管理员检测到 代理,会话cookie设置为安全,管理员登录不 除非客户与代理之间的沟通 超过https;这是一种安全措施.所有沟通 客户和管理员必须始终是本地或加密的;否则 攻击者将能够执行中间攻击或 在服务器上重播攻击并执行任意代码. 但是,我想知道这是否意味着通过WSGI使用Web2py意味着我无法远程进入管理员界面. 解决方案 如果您尝试通过HTTP访问管理界面: Forbidden You don't have permission to access /admin/default/index on this server. Apache/2.2.22 (Ubuntu) Server at yourserver.com Port 80 只需使用https导航到同一页面即可远程访问管理接口.
我已经在使用Web2py的本地计算机上创建了一个应用程序,并且它通过wsgi和sqlite运行.我可以使用自己的域并完成所有需要的URL重写. 现在,我需要一种方法来创建特定的管理用户,这些用户将负责更新一些表. 特定问题: 当我的应用在GAE上运行时,我可以使用Web2py Admin界面吗? 即使我不想创建新闻应用程序或编辑文件,也可以使用web2py admin界面来管理在Google App Engine上运行的应用程序的数据库吗? 如果没有,在GAE上使用Web2PY时如何完成此类用户管理? 解决方案 我以前从未使用过GAE,但是我通常在DB.PY中做类似的事情来创建初始管理用户: def check_initialize(): if not db().select(db.auth_user.ALL).first(): db.auth_user.insert( usernam
以下问题针对两种用例. 用例1:部署单个服务器上的单个 wsgi应用程序. 用例2:部署在同一服务器上一个或多个 wsgi应用程序. 我的问题: 是否应该沿Python WSGI应用程序本身将WSGI服务器安装在同一Virtualenv内部?或; 我应该在全球安装WSGI服务器吗? 我想知道WSGI应用程序(基于框架),例如烧瓶,樱桃,金字塔等 和WSGI服务器,例如 gunicorn,女服务员等 谢谢. 解决方案 只需使用Virtualenv-具有不同libs的不同应用程序可以和平并存;而且,如果仅是一个单个应用程序,那么设置仍然很难,但是您会为未来提供灵活性. 同样适用于本机WSGI服务器,只需将它们安装到Virtualenv中,不会损害性能. 什么会受到伤害是Python的多线程,因为,请远离本地螺纹服务器像女服务员.使用多处理服务器(或在有意义的地方使用异步),我相信枪支是.考虑使用 uwsgi - 它非常强大,尽管不是本机.
我正在部署一个django项目并获取500个错误(请参阅服务器日志错误). 我在哪里做错了? 一些笔记: Centos mod_wsgi已安装 在开发和部署环境中,同一Python(2.7)和Django(1.9.6)版本 在部署环境中使用virtualenv 服务器日志错误 [Wed Sep 21 17:07:54 2016] [error] [client 192.168.30.93] SyntaxError: invalid syntax [Wed Sep 21 17:07:54 2016] [error] [client 192.168.30.93] mod_wsgi (pid=6570): Target WSGI script '/new_esmart/esmart2/esmart2/wsgi.py' cannot be loaded as Python module., referer: http://192.168.30.17/logi
我正在尝试部署一个用烧瓶编写和读取PNG图像的应用程序.在本地,我可以在没有错误的情况下运行脚本,除非我在服务器上运行它. 我使用此指南 onigitalocean.它使用Apache,WSGI和Virtualenv. 这个代码的示例: from flask import Flask from flask import send_file from PIL import Image app = Flask(__name__) @app.route("/") def hello(): img = Image.new('RGB', (200, 100), (255, 255, 255)) img.save('output.png') return send_file('output.png', mimetype='image/png') if __name__ == "__main__": app.run() 我发现引起问题的原因是
我已经看到了很多与我的问题有关的以前的消息,但是没有答案可以摆脱我的" 500服务器内部错误",因此我尝试发布我的conf以获取帮助. 错误消息: [星期五6月24日17:05:23.631270 2016] [authz_core:错误] [PID 15187:TID 140715758237440] [客户/wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW:为/WWWWWwwwwwwwwwwwwww WM WRYA JARY P MORY在M M PN为1月1日/p> [星期五6月24日17:05:23.631568 2016] [:错误] home/www/waves','/usr/local/lib/python2.7/dist-packages/setuptools-20.6.7-py2.7.egg','/usr/lib/
Centos 5.5随附了Python 2.4,我需要Python 2.7才能进行一个项目.我下载了来源,跑了,删除并再次尝试了几个替代构建: ./configure && make && make install ./configure && make && make altinstall ./configure --prefix=/opt/python2.7 && make && make install 我继续安装setuptools和virtualenv(确保参考正确的Python,无符号链接或其他任何怪异的版本).为该项目构建了一个Virtualenv,为我的服务器配置了所有内容,我的最后一步是使用 从Apache 2.2.1的源构建MOD_WSGI 3.3 ./configure --with-apxs=/path/to/apxs --with-python=/path/to/py2.7 && make && make install 全部三次,运行Pyt
我了解如何创建Virtualenv,激活该Virtualenv,然后在激活Virtualenv时安装Django.例如: virtualenv ~/narnia source ~/narnia/bin/activate pip install django 据我了解,当您"激活"虚拟环境时,它只是在您进入外壳时会更改一些路径变量,仅此而已.因此,当使用纳尼亚(Narnia)激活纳尼亚(Narnia)时,将django安装在pip时,它只需将事物安装到相对于〜/narnia的位置而不是相对于/usr(ex.〜/narnia/lib/python2.6/site-cackages而不是/usr/lib/python2.6/site-ackages). 现在,假设我想用该Virtualenv创建一个Django项目.我什至不必被激活,正确吗?我可以做: deactivate cd ~ narnia/bin/django-admin.py startproject mypr
我在生产Ubuntu 13.04服务器上使用mod-wsgi mod-wsgi. 在 有人可以指出问题吗? 这是我收到以下语法错误的追溯: [Mon Jul 14 14:37:09 2014] [error] [client 70.180.246.22] mod_wsgi (pid=14292): Target WSGI script '/home/aaron/public_html/flapsta.com/flapsta/flapsta/flapsta.wsgi' cannot be loaded as Python module. [Mon Jul 14 14:37:09 2014] [error] [client 70.180.246.22] mod_wsgi (pid=14292): Exception occurred processing WSGI script '/home/aaron/public_html/flapsta.com/flapsta/flap
我很难获得Apache/WSGI使用我的Virtualenv.我添加了以下两行(服务器上的路径指向目标Virtualenv中站点包装的实际位置)到我的WSGI文件: import site site.addsitedir('/sites/mysite/virtpy/lib/python2.6/site-packages') (来自 mod_wsgi ).但是,当我尝试将URL加载到浏览器中时,我会得到500.检查Apache日志: [Sun Jul 17 11:07:11 2011] [error] [client 94.170.105.142] app = import_module(appname) [Sun Jul 17 11:07:11 2011] [error] [client 94.170.105.142] File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.
更新的问题 [Mon Jul 18 09:20:10.517873 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261] Traceback (most recent call last): [Mon Jul 18 09:20:10.518005 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261] File "/var/www/rent/Rent/wsgi.py", line 20, in [Mon Jul 18 09:20:10.518141 2016] [:error] [pid 30316:tid 139756302964480] [remote 122.164.94.99:48261] from django.core.wsgi import get
我已经使用烧瓶应用程序通过RaspberryPi摄像头震撼了视频.我用于烧瓶应用程序的代码在这里: 烧瓶 在本地服务器中,它正在执行视频流,但在我的网站上不进行. 我使用的Apache2服务器下面有WSGI文件: flaskapp2.wsgi #!/usr/bin/python import sys import logging logging.basicConfig(stream=sys.stderr) sys.path.insert(0,"/var/www/FlaskApp2/FlaskApp2") from ashish import app as application application.secret_key ='1233883' 文件系统的结构是: /var/www/FlaskApp2/ flskapp2.wsgi FlaskApp2/ ashish.py camera
我使用UWSGI(使用这个教程). nginx和Uwsgi正在通过UNIX插座进行通信. 但是,一旦我在Django设置中转动DEBUG = False,我就会出现502错误. nginx错误日志告诉我: 2015/09/08 10:37:51 [error] 940#0: *4 upstream prematurely closed connection while reading response header from upstream, client: myIP, server: mydomain.ca, request: "GET /quests/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/hackerspace.sock:", host: "myDomain" 如何防止插座连接计时,为什么debug = false使此差异? 谢谢! 解决方案 我找到了对我有用的解决方案.我必须在django set
嗨,我正在尝试从Nginx后面的WSGI服务器获得AJAX响应(如果很重要).我认为我正在阅读请求问题,因为变量 request_body_size 似乎总是0;当我想看到"测试字符串"时,我在警报框中获得了"无请求"的返回值. 我找不到有关此工作的许多文档,因此,如果有人知道如何解决此问题,我将不胜感激. 我在WSGI脚本中具有此Python代码: import os, sys from cgi import parse_qs def application(environ, start_response): try: request_body_size = int(environ.get('CONTENT_LENGTH', 0)) except (ValueError): request_body_size = 0 context = {} if request_body_size != 0:
从shell此python代码启动并与node.js进行通信的代码正常工作: > from subprocess import * > js = "(function(m) { console.log(m) })('hello world')" > (out,err) = Popen(["node"], stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=False).communicate(js) > out "hello world\n" 但是,当我从 uwsgi "> uwsgi 中运行相同的代码时 'FATAL ERROR: v8::Context::New() V8 is no longer usable\n' wsgi社区或node.js社区的任何见解?我很茫然. 解决方案 检查是否正在运行带有内存约束的UWSGI(例如 - limit-as或cgroup/a Cail).从中产生的过程将继承这些限制.即使检查