标签: uwsgi

错误:"Django 1.4上的字典更新序列元素#0的长度为1;需要2"

我在django 1.4上有一条错误消息:

字典更新序列元素#0的长度为1; 2是必需的

[编辑]

它发生在我尝试使用模板标签时:`{%for v in values%}:

dictionary update sequence element #0 has length 1; 2 is required

Request Method:     GET
Request URL:    ...
Django Version:     1.4.5
Exception Type:     ValueError
Exception Value:    

dictionary update sequence element #0 has length 1; 2 is required

Exception Location:     /usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py in __init__, line 21
Python Executable:  /usr/bin/uwsgi-core
Python Version:     2.7.3
Python Path:    

['/var/www/',
 '.',
 '',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PIL',
 '/usr/lib/pymodules/python2.7']

Server time:    sam, 13 Jul 2013 16:15:45 +0200 …
Run Code Online (Sandbox Code Playgroud)

python django uwsgi

133
推荐指数
7
解决办法
16万
查看次数

uwsgi无效的请求块大小

我在皇帝模式下运行uwsgi

uwsgi --emperor /path/to/vassals/ --buffer-size=32768
Run Code Online (Sandbox Code Playgroud)

并得到这个错误

invalid request block size: 21327 (max 4096)...skip
Run Code Online (Sandbox Code Playgroud)

该怎么办??我也试过-b 32768

uwsgi

122
推荐指数
6
解决办法
6万
查看次数

Nginx 499错误代码

我收到了很多499 nginx错误代码.我看到这是客户端问题.这不是Nginx或我的uWSGI堆栈的问题.我注意到当获得499时uWSGI日志中的相关性.

address space usage: 383692800 bytes/365MB} {rss usage: 167038976
bytes/159MB} [pid: 16614|app: 0|req: 74184/222373] 74.125.191.16 ()
{36 vars in 481 bytes} [Fri Oct 19 10:07:07 2012] POST /bidder/ =>
generated 0 bytes in 8 msecs (HTTP/1.1 200) 1 headers in 59 bytes (1
switches on core 1760)
SIGPIPE: writing to a closed pipe/socket/fd (probably the client
disconnected) on request /bidder/ (ip 74.125.xxx.xxx) !!!
Fri Oct 19 10:07:07 2012 - write(): Broken pipe [proto/uwsgi.c line
143] during POST /bidder/ (74.125.xxx.xxx) …
Run Code Online (Sandbox Code Playgroud)

nginx http-headers uwsgi

91
推荐指数
9
解决办法
20万
查看次数

nginx + uwsgi: - 请求的不可用修饰符:0 -

Ubuntu 12.04,nginx 1.2.0,uwsgi 1.0.3.

我使用以下命令启动uwsgi:

uwsgi -s 127.0.0.1:9010 -M -t 30 -A 4 -p 4 -d /var/log/uwsgi.log
Run Code Online (Sandbox Code Playgroud)

在每个请求中,nginx回复502并且uwsgi写入以记录以下行:

-- unavailable modifier requested: 0 --
Run Code Online (Sandbox Code Playgroud)

nginx uwsgi ubuntu-12.04

78
推荐指数
5
解决办法
4万
查看次数

WSGI vs uWSGi与Nginx

任何人都可以在使用WSGI VS uWSGI与Nginx 时解释利弊.

目前我正在为Django网站构建一个生产服务器,我已经准备好但无法决定是否应该使用WSGI或uWSGI.您能详细解释一下每种配置的区别吗?哪种配置应该扩展到最好?

提前致谢

python django wsgi nginx uwsgi

75
推荐指数
3
解决办法
5万
查看次数

uWSGI有什么意义?

我正在研究WSGI规范,我正在试图找出像uWSGI这样的服务器如何适应这种情况.我理解WSGI规范的重点是将像nginx这样的Web服务器与Web应用程序分开,就像你使用Flask编写的东西一样.我不明白的是uWSGI的用途.为什么nginx不能直接调用我的Flask应用程序?烧瓶不能直接说WSGI吗?为什么uWSGI需要介入它们之间?

WSGI规范有两个方面:服务器和Web应用程序.uWSGI在哪一边?

python wsgi nginx flask uwsgi

71
推荐指数
3
解决办法
2万
查看次数

用pcre支持重建uwsgi

当运行uwsgi时,我收到以下消息:

!!! no internal routing support, rebuild with pcre support !!!
Run Code Online (Sandbox Code Playgroud)

我已经使用以下命令安装了pcre(我认为):

Sudo apt-get install libpcre3 libpcre3-dev
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么即使在我安装了pcre软件包之后我仍然收到此消息,如果我需要重新安装uwsgi并激活pcre我该怎么做?

此外,内部路由是否重要?我认为它确实如此,否则uwsgi的制造商就不会提出这个消息.我运行Ubuntu 12.04 LTS.

谢谢您的帮助!

pcre uwsgi

66
推荐指数
5
解决办法
4万
查看次数

Flask和uWSGI - 无法加载app 0(mountpoint ='')(未找到可调用或导入错误)

当我尝试使用uWSGI启动Flask时出现以下错误.我是这样开始的:

>  # cd ..
>     root@localhost:# uwsgi --socket 127.0.0.1:6000 --file /path/to/folder/run.py --callable app -  -processes 2
Run Code Online (Sandbox Code Playgroud)

这是我的目录结构:

-/path/to/folder/run.py
      -|app
          -|__init__.py
          -|views.py
          -|templates
          -|static
Run Code Online (Sandbox Code Playgroud)

的内容 /path/to/folder/run.py

if __name__ == '__main__':
   from app import app
   #app.run(debug = True)
   app.run()
Run Code Online (Sandbox Code Playgroud)

的内容 /path/to/folder/app/__init__.py

import os
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.login import LoginManager
#from flaskext.babel import Babel
from config import basedir
app = Flask(__name__)
app.config.from_object('config')
#app.config.from_pyfile('babel.cfg')

db = SQLAlchemy(app)
login_manager = LoginManager()
login_manager.setup_app(app)
login_manager.login_view = 'login'
login_manager.login_message = u"Please …
Run Code Online (Sandbox Code Playgroud)

python flask uwsgi

62
推荐指数
2
解决办法
4万
查看次数

Bad Django/uwsgi表现

我正在使用nginx和uwsgi运行django应用程序.这是我如何运行uwsgi:

sudo uwsgi -b 25000 --chdir=/www/python/apps/pyapp --module=wsgi:application --env DJANGO_SETTINGS_MODULE=settings --socket=/tmp/pyapp.socket --cheaper=8 --processes=16  --harakiri=10  --max-requests=5000  --vacuum --master --pidfile=/tmp/pyapp-master.pid --uid=220 --gid=499
Run Code Online (Sandbox Code Playgroud)

&nginx配置:

server {
    listen 80;
    server_name test.com

    root /www/python/apps/pyapp/;

    access_log /var/log/nginx/test.com.access.log;
    error_log /var/log/nginx/test.com.error.log;

    # https://docs.djangoproject.com/en/dev/howto/static-files/#serving-static-files-in-production
    location /static/ {
        alias /www/python/apps/pyapp/static/;
        expires 30d;
    }

    location /media/ {
        alias /www/python/apps/pyapp/media/;
        expires 30d;
    }

    location / {
        uwsgi_pass unix:///tmp/pyapp.socket;
        include uwsgi_params;
        proxy_read_timeout 120;
    }

    # what to serve if upstream is not available or crashes
    #error_page 500 502 503 504 /media/50x.html;
}
Run Code Online (Sandbox Code Playgroud)

这就是问题所在.在服务器上执行"ab"(ApacheBenchmark)时,我得到以下结果:

nginx版本:nginx版本:nginx/1.2.6 …

python django uwsgi django-rest-framework

49
推荐指数
2
解决办法
3万
查看次数

Nginx提供静态文件并禁止403

只是想帮助别人.是的,你只想使用nginx提供静态文件,你在nginx.conf中得到了一切:

location /static {
       autoindex on;
       #root /root/downloads/boxes/;
       alias /root/downloads/boxes/;
      }
Run Code Online (Sandbox Code Playgroud)

但是,最后,你失败了.你从浏览器得到"403禁止"......

---------------------------------------- 下面的答案: ------ ----------------------------------

解决方案非常简单:


方法1:以用户身份运行nginx作为'/ root/downloads/boxes /'所有者

nginx.conf中:

?user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
Run Code Online (Sandbox Code Playgroud)

是的,在第一行" #user noboy; "中,只需删除" # ",并在Linux/OS X中将" nobody " 更改为您自己的用户名,即更改为" root "进行测试.重启nginx.

注意,你最好不要以root身份运行nginx!这里只是为了测试,对黑客来说是危险的.

有关更多参考,请参阅nginx(引擎X) - BUM中的痛苦![13:许可被拒绝]


方式2:将'/ root/downloads/boxes /'所有者更改为'www-data'或'nobody'

终端:

ps aux | grep nginx
Run Code Online (Sandbox Code Playgroud)

获取运行nginx的用户名.应该是'www-data''nobody'由nginx的版本决定.然后点击终端(例如使用'www-data'):

chown -R www-data:www-data /root/downloads/boxes/
Run Code Online (Sandbox Code Playgroud)

------------------------------ 一件更重要的事情是: …

nginx uwsgi

47
推荐指数
7
解决办法
6万
查看次数