标签: django-wsgi

Django停止使用RuntimeError:populate()不可重入

我一直在使用WSGI开发部署在Apache服务器上的Django Web应用程序,一切都进展顺利.今天,我对我的应用程序进行了一些小的更改,admin.py试图自定义内置的Django Admin界面,并且最初产生了语法错误(一个未闭合的括号).这意味着当我触摸wsgi.py并加载代码时(我在我的虚拟主机上以守护进程模式运行WSGI),我的网站被替换为内部服务器错误,因为WSGI在遇到语法错误时停止了.

所以我修复了语法错误,检查了我没有更多manage.py check,并触及wsgi.py重新部署.但我的网站仍然显示内部服务器错误!检查Apache日志,这是我看到的:

[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Create interpreter 'quotes.cs.cornell.edu|'.
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding '/extra/www/html/quotes/quotes_django' to path.
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding '/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/' to path.
[Sun Nov 23 13:52:46 2014] [info] [client 128.84.33.19] mod_wsgi (pid=19093, process='quotes.cs.cornell.edu',
  application='quotes.cs.cornell.edu|'): Loading WSGI script '/extra/www/html/quotes/quotes_django/quotes_django/
wsgi.py'.
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Target WSGI script '/extra/www/html/ …
Run Code Online (Sandbox Code Playgroud)

apache django mod-wsgi django-wsgi

88
推荐指数
5
解决办法
7万
查看次数

调试Apache/Django/WSGI错误请求(400)错误

我的简单Django应用程序在调试模式下工作正常(manage.py runserver),并且在我的开发箱上的WSGI + Apache下工作,但当我推送到EC2时,我开始接收Bad Request (400)任何URL的间歇性(10-80%的时间)错误我试图查看(无论是在我的应用程序中还是在Django管理员中.

我在哪里可以找到关于此的调试信息?没有任何东西出现/var/log/apache2/error.log,即使有LogLevel=info.我检查了版本,记录了Request环境(参见ModWSGI Debugging Tips),看不出有什么重大差异.

剩下的一个想法是,我正在使用Ubuntu 12.04(libapache2-mod-wsgi 3.3-4build1)的mod_wsgi,它是针对Python 2.7.1构建的; 我有Python 2.7.3.Django是1.6,比Ubuntu Precise版本更新.我不愿意从源代码开始构建软件包,因为它很难清理,这看起来像是次要的版本更改......

谢谢您的帮助.

(供参考,这里是Apache配置和WSGI应用程序)

Apache配置(000默认)

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    WSGIScriptAlias /rz /usr/local/share/rz/rz.wsgi
    ...
Run Code Online (Sandbox Code Playgroud)

rz.WSGI app

import os
import sys
import django.core.handlers.wsgi
import pprint

path = '/usr/local/share/rz'
if path not in sys.path:
    sys.path.insert(0, path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'rz.settings'

class LoggingMiddleware:
    def __init__(self, application):
        self.__application = application

    def __call__(self, environ, start_response):
        errors = environ['wsgi.errors']
        pprint.pprint(('REQUEST', environ), stream=errors) …
Run Code Online (Sandbox Code Playgroud)

python apache django mod-wsgi django-wsgi

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

ImportError:没有名为django.core.wsgi的模块Apache + VirtualEnv + AWS + WSGI

我试图在亚马逊的EC2实例上发布我的网站,并且我一直收到500错误.我真的不知道为什么.

//日志文件

    [Sun Feb 17 23:12:48.066802 2013] mod_wsgi (pid=2102): Target WSGI script '/srv/www/app/poka/apache/wsgi.py' cannot be loaded as Python module.
    [Sun Feb 17 23:12:48.066840 2013] mod_wsgi (pid=2102): Exception occurred processing WSGI script '/srv/www/app/poka/apache/wsgi.py'.
    [Sun Feb 17 23:12:48.066864 2013] Traceback (most recent call last):
    [Sun Feb 17 23:12:48.066889 2013] File "/srv/www/mysite/poka/apache/wsgi.py", line 26, in <module>
    [Sun Feb 17 23:12:48.066920 2013] from django.core.wsgi import get_wsgi_application
    [Sun Feb 17 23:12:48.066945 2013] ImportError: No module named django.core.wsgi
Run Code Online (Sandbox Code Playgroud)

// Apache配置文件

    WSGIScriptAlias / /srv/www/app/mysite/apache/wsgi.py

    WSGIDaemonProcess mysite python-path=/srv/www/app/mysite:/home/ec2-user/.virtualenvs/mysite-main/lib/python2.7/site-packages …
Run Code Online (Sandbox Code Playgroud)

apache django wsgi amazon-ec2 django-wsgi

34
推荐指数
3
解决办法
7万
查看次数

Django + apache&mod_wsgi:更改后必须重启apache

我这样配置了我的开发服务器:

Ubuntu,Apache,mod_wsgi,Python 2.6

我从连接到它的另一台计算机上工作.

除非我重新启动Apache,否则大多数情况下更改不会影响应用程序.在某些情况下,更改会在不重新启动Web服务器的情况下生效,但在让我们说3或4页加载后,应用程序的行为可能与更改之前的行为相似.

到现在为止我只是重新加载每次apache,因为我在这里有我的开发服务器,但是HELL过了一段时间后非常讨厌.我怎么能避免这个?

我无法使用开发服务器,因为我需要一个尽可能接近生产环境的环境.

谢谢

python apache django mod-wsgi django-wsgi

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

在AWS Elastic Beanstalk上设置Django:找不到WSGIPath

我已经尝试了好几天在Amazon Web Services的Elastic Beanstalk下设置Django.我认为我遇到的问题是这个问题:

ERROR - Your WSGIPath refers to a file that does not exist.
Run Code Online (Sandbox Code Playgroud)

我按照这里的教程进行一直顺利,直到第6步结束,但是除了第5步#2的通用Elastic Beanstalk页面之外,我不能为我的生活展示任何东西.我跑的时候

./manage.py runserver
Run Code Online (Sandbox Code Playgroud)

在我的本地计算机上,一切正常,但我无法部署该页面.我首先尝试使用自己编写的小型Django网站.它没有用,所以我删除了我所做的一切并再次尝试,但是没有用,所以我删除了所有这些并再次尝试使用新的django安装.我尝试了很多次摆弄小东西,但我想我错过了一些重要的东西.

我添加了一个python.config文件,如本教程中所述.

这是我的文件结构:

-.git/
-.mysite/
    -myapp/
        -__init__.py
        -models.py
        -tests.py
        -views.py
    -mysite/
        -__init__.py
        -settings.py
        -urls.py
        -wsgi.py
    -.ebextensions/
        -python.config
    -manage.py
    -mysite.db
    -requirements.txt
Run Code Online (Sandbox Code Playgroud)

来自我的settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'mysite.db',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}
Run Code Online (Sandbox Code Playgroud)

这是python.config:

container_commands:   01_syncdb:    
    command: "django-admin.py syncdb --noinput"
    leader_only: true

option_settings:
    - namespace: aws:elasticbeanstalk:container:python
      option_name: …
Run Code Online (Sandbox Code Playgroud)

django wsgi amazon-web-services django-wsgi amazon-elastic-beanstalk

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

uwsgi选项--wsgi-file和--module无法识别

我正在尝试使用uwsgi运行Django应用程序.我发现的大多数指令都引用了"--wsgi-file"和"--module"来指定应用程序,但是"uwsgi"没有提到这些选项,当我尝试使用它们时:

uwsgi -s /tmp/uwsgi.sock --master --module myapp.wsgi
uwsgi: unrecognized option '--module'
getopt_long() error
Run Code Online (Sandbox Code Playgroud)

uwsgi -s /tmp/uwsgi.sock --master --wsgi-file myapp/wsgi.py
uwsgi: unrecognized option '--wsgi-file'
getopt_long() error
Run Code Online (Sandbox Code Playgroud)

当我没有任何一个运行时,我得到:

uwsgi -s /tmp/uwsgi.sock --master 
*** Starting uWSGI 2.0.9 (64bit) on [Fri Jul 10 11:12:04 2015] ***
compiled with version: 4.4.7 20120313 (Red Hat 4.4.7-11) on 23 April 2015 19:31:15
os: Linux-2.6.32-504.16.2.el6.x86_64 #1 SMP Tue Mar 10 17:01:00 EDT 2015
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 2 …
Run Code Online (Sandbox Code Playgroud)

wsgi django-wsgi uwsgi

20
推荐指数
1
解决办法
2万
查看次数

Django + mod_wsgi + apache:/ Error模块名为djproj.urls的ImportError

我正在尝试使用apache和mod_wsgi在我的linode服务器上部署我的Django应用程序.

file: /srv/www/example.com/djproj/django.wsgi

import os
import sys

sys.path.append('/srv/www/example.com/djproj')

os.environ['PYTHON_EGG_CACHE'] = '/srv/www/example.com/.python-egg'
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)

file: /etc/apache2/sites-available/example.com

/etc/apache2/sites-available/example.com
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com

DocumentRoot /srv/www/example.com/public_html

WSGIScriptAlias / /srv/www/example.com/djproj/django.wsgi

<Directory "/srv/www/example.com/djproj">
   Order allow,deny
   Allow from all
</Directory>

ErrorLog /srv/www/example.com/logs/error.log 
CustomLog /srv/www/example.com/logs/access.log combined
Run Code Online (Sandbox Code Playgroud)

当我访问/我的网站时,我收到此错误:

Environment:


Request Method: GET
Request URL: http://example.com/

Django Version: 1.3
Python Version: 2.6.6
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/local/lib/python2.6/dist-packages/Django-1.3- …
Run Code Online (Sandbox Code Playgroud)

python django importerror django-wsgi

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

没有root重新加载django wsgi脚本

我使用嵌入式wsgi在apache上安装了django.我没有在机器上有根.

在部署新的源代码时,如何告诉apache重新加载python实例?

我尝试删除所有.pyc文件,它仍然运行旧代码.

django django-wsgi

10
推荐指数
2
解决办法
8023
查看次数

使用 Heroku/gunicorn/django 配置部署的问题

我正在尝试在 heroku 上运行我的 django 应用程序。

文件夹结构:

app/
  Procfile
  docs/
  ...
  project/
    manage.py
    wsgi.py
    <django apps>
Run Code Online (Sandbox Code Playgroud)

配置文件

web: gunicorn --pythonpath="$PWD/project" wsgi:application --log-file=-
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

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] [INFO] Listening at: http://0.0.0.0:44846 (3)
2015-02-16T16:05:02.709567+00:00 app[web.1]: [2015-02-16 16:05:02 +0000] [9] [INFO] Booting worker with pid: 9
2015-02-16T16:05:02.696968+00:00 app[web.1]: [2015-02-16 16:05:02 +0000] [3] [INFO] Starting gunicorn 19.1.1
2015-02-16T16:05:02.697790+00:00 app[web.1]: [2015-02-16 16:05:02 +0000] [3] [INFO] Using worker: sync
2015-02-16T16:05:02.793753+00:00 app[web.1]: [2015-02-16 16:05:02 +0000] …
Run Code Online (Sandbox Code Playgroud)

deployment django wsgi heroku django-wsgi

10
推荐指数
2
解决办法
1万
查看次数

Matplotlib 创建了一个临时 config/cache 目录

Matplotlib 在 /var/www/.config/matplotlib 创建了一个临时 config/cache 目录,因为默认路径 (/tmp/matplotlib-b33qbx_v) 不是可写目录;强烈建议将 MPLCONFIGDIR 环境变量设置为可写目录,特别是为了加快 Matplotlib 的导入速度并更好地支持多处理。

这是我在 error.log 文件和浏览器上的 504 Gateway Time out error 中收到的消息。请有人帮助解决这个问题。

django matplotlib django-wsgi python-3.x

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