在SAE上部署Python的Django框架的一些问题汇总


Posted in Python onMay 30, 2015

花了些工夫将碎片网部署到了SAE,中途遇到各类问题。感觉SAE看上去很美,实际上却并不是太成熟(至少python版如此)。
下面记录下我遇到的一些主要问题以及解决方法。
django版本问题

Django1.4都即将发布了,SAE平台自带的SAE版本依旧为1.2x。为使用django1.3版本,你需上传自己的django。具体做法可参考SAE手册中的runtime.html#virtualenv
日志模块出错

最先遇到的是日至模块的问题。错误显示AdminEmailHandler中构造某个类时带了is_mail这个参数,但目标类的构造函数根本就不支持。好在日至模块不是必须。将日至处理模块换成django.utils.log.NullHandler解决问题。

'null': { 'level':'DEBUG', 'class':'django.utils.log.NullHandler', },

local_thread问题

在index.wsgi中加入

import threading
from django.utils import _threading_local
threading.local = _threading_local.local

settings文件

SAE默认安装了不少python包,其中包括django-userena。糟糕的是SAE将django-userena的demo项目也加到了python路径,而且加载的优先级比项目代码还高。直接导致os.environ[‘DJANGO_SETTINGS_MODULE'] = ‘settings'找到的是userena的settings文件。最终将settings文件改名为qnotes_settings.py解决该问题。
其他问题

    昨天部署上线后经常出现数据库错误,错误提示为Caught OperationalError while rendering: (1045, ‘access deny')  。SAE数据库不支持长连接,30s后主动超时。但django本就会在每次请求后自动关闭数据库连接,理论上不应当出现类似问题。该问题今天莫名其妙的自己好了。
    服务器非常不稳定,经常长时间的无法访问,不定期的可以正常访问。
    SAE可能hack了python的包加载机制的原因,SAE的python包的加载行为有些奇怪。本应当最先加载当前目录下的包,实际上却不一定。

Python 相关文章推荐
讲解Python中if语句的嵌套用法
May 14 Python
python笔记:mysql、redis操作方法
Jun 28 Python
python函数中return后的语句一定不会执行吗?
Jul 06 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
Python使用dict.fromkeys()快速生成一个字典示例
Apr 24 Python
python使用KNN算法识别手写数字
Apr 25 Python
Python中bisect的使用方法
Dec 31 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
python中pop()函数的语法与实例
Dec 01 Python
python中time.ctime()实例用法
Feb 03 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
May 31 Python
python实现比较两段文本不同之处的方法
May 30 #Python
python统计文本文件内单词数量的方法
May 30 #Python
python使用win32com库播放mp3文件的方法
May 30 #Python
基于wxpython开发的简单gui计算器实例
May 30 #Python
python图像处理之镜像实现方法
May 30 #Python
python图像处理之反色实现方法
May 30 #Python
python中字典(Dictionary)用法实例详解
May 30 #Python
You might like
开源SNS系统-ThinkSNS
2008/05/18 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
php操作mongoDB实例分析
2014/12/29 PHP
基于jquery的气泡提示效果
2010/05/31 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
easy_install python包安装管理工具介绍
2013/02/10 Python
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
利用python求相邻数的方法示例
2017/08/18 Python
用TensorFlow实现多类支持向量机的示例代码
2018/04/28 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
numpy 声明空数组详解
2019/12/05 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
Python利用命名空间解析XML文档
2020/08/10 Python
Python pip 常用命令汇总
2020/10/19 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
J2EE是技术还是平台还是框架
2016/08/14 面试题
业务主管岗位职责范本
2013/12/25 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
支行行长竞聘演讲稿
2014/05/15 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
一文搞懂python异常处理、模块与包
2021/06/26 Python