在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中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
基于python的Tkinter实现一个简易计算器
Dec 31 Python
安装python3的时候就是输入python3死活没有反应的解决方法
Jan 24 Python
python验证码识别实例代码
Feb 03 Python
python切片(获取一个子列表(数组))详解
Aug 09 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 Python
使用python实现下载我们想听的歌曲,速度超快
Jul 09 Python
Python Unittest原理及基本使用方法
Nov 06 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
我对PyTorch dataloader里的shuffle=True的理解
May 20 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中for循环语句的几种变型
2007/03/16 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
JavaScript Perfection kill 测试及答案
2010/03/23 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
jquery ajaxSubmit 异步提交的简单实现
2014/02/28 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
node中的session的具体使用
2018/09/14 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
Python随机生成带特殊字符的密码
2016/03/02 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
python 实现dict转json并保存文件
2019/12/05 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
养殖人员的创业计划书范文
2013/12/26 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server