我正面临着Flup提出的可怕的"未处理的异常".可悲的部分是它在webserver(lighttpd + flup)级别而不是在应用程序级别(Django).所以没有提出关于问题所在的500封电子邮件.
我们整个团队努力清理代码库,包括任何暧昧的进口和某种类型的东西,只是为了消除由于模糊的进口引起错误的机会.我们在代码中清理了很多东西.仍然是同样的例外.
坦率地说,我对Flup的错误处理感到非常沮丧.它没有告诉你任何事情.最糟糕的是,它向用户显示了相同的"未处理的例外".我如何通过这个?
我检查了lighttpd日志.我只看到"接口错误/连接已经关闭".它只发生在我的应用程序在FCGI模式下运行时.所以问题在于flup实际上是如何处理我的代码(应用程序)的.我如何通过这个?
我检查了flup的替代方案,但是Django明确地依赖于flup(这是一个限制,并让我困惑)(参考:django_src/django/core/servers/fastcgi.py line:100/131)
如何调试(至少)此方案并解决问题?请帮帮我.申请已经停止了3天.
我正在尝试调试我的django应用程序,但是这很困难,因为我不知道我的打印语句在哪里发送它们的输出。我在django和nginx中使用flup和fastcgi,可以看到python错误并通过nginx访问日志,但是我不知道我的打印语句在哪里。
这是我的nginx.conf文件中的相关内容:
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/demo.access.log;
error_log /var/log/nginx/demo.error.log;
location / {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9001;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用以下命令运行fastcgi:
python manage.py runfcgi host=127.0.0.1 port=9001
Run Code Online (Sandbox Code Playgroud)
我基本上遵循了本教程https://code.djangoproject.com/wiki/DjangoAndNginx,我的操作系统是ubuntu!
谢谢您的帮助!
我正在使用djangoflup + fastgic + ngix.它运作良好.
现在我计划从python 2.6.6升级到2.7.2并遇到了在python 2.7中导入flup的问题.
Python 2.7.2 (Red Hat 4.1.2-50)
>>> import sys
>>> sys.path
['', '......',
'/usr/local/lib/python2.7.2/lib/python2.7/site-packages/flup-1.0.2-py2.7.egg', '......']
>>> import flup
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named flup
Run Code Online (Sandbox Code Playgroud)
它在python 2.6下的SAME主机上运行完美.
Python 2.6.6 (Red Hat 4.1.2-50)
>>> import sys
>>> sys.path
['', '......', '/usr/local/lib/python2.6/site-packages/flup-1.0.1-py2.6.egg', '......']
>>> import flup
>>>
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
我正在按照这些步骤部署Django项目
我的.htaccess是:
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
我的.fcgi:
#!/homeX/your_username/python27/bin/python27
import sys, os
# Add a custom Python path.
sys.path.insert(0, "/homeX/your_username/python27")
sys.path.insert(13, "/homeX/your_username/myproject")
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")
Run Code Online (Sandbox Code Playgroud)
当我跑来python2.7 mysite.fcgi证明它有效时,它会让我:
无法导入flup.server.fcgi
我该怎么导入flup.server.fcgi?
我使用的是:Django 1.8.7,flup 1.0.3,python 2.7,psycopg2为postgreSQL,并使用一切都下载pip.