在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的批量远程管理和部署工具Fabric用法实例
Jan 23 Python
python通过shutil实现快速文件复制的方法
Mar 14 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
Jan 27 Python
详解python 注释、变量、类型
Aug 10 Python
python 图片去噪的方法示例
Jul 09 Python
在python中用url_for构造URL的方法
Jul 25 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
python和php哪个更适合写爬虫
Jun 22 Python
浅析Python 责任链设计模式
Sep 11 Python
详解python polyscope库的安装和例程
Nov 13 Python
让你相见恨晚的十个Python骚操作
Nov 18 Python
Python matplotlib可视化之绘制韦恩图
Feb 24 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
如何正确理解PHP的错误信息
2006/10/09 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python实现的发邮件功能示例
2019/09/11 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
经销商培训邀请函
2014/01/21 职场文书
道德演讲稿
2014/05/21 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
Feign调用全局异常处理解决方案
2021/06/24 Java/Android
Redis 哨兵机制及配置实现
2022/03/25 Redis