在SAE上部署Python的Django框架的一些問題匯總
花了些工夫?qū)⑺槠W(wǎng)部署到了SAE,中途遇到各類問題。感覺SAE看上去很美,實(shí)際上卻并不是太成熟(至少python版如此)。
下面記錄下我遇到的一些主要問題以及解決方法。
django版本問題
Django1.4都即將發(fā)布了,SAE平臺自帶的SAE版本依舊為1.2x。為使用django1.3版本,你需上傳自己的django。具體做法可參考SAE手冊中的runtime.html#virtualenv
日志模塊出錯(cuò)
最先遇到的是日至模塊的問題。錯(cuò)誤顯示AdminEmailHandler中構(gòu)造某個(gè)類時(shí)帶了is_mail這個(gè)參數(shù),但目標(biāo)類的構(gòu)造函數(shù)根本就不支持。好在日至模塊不是必須。將日至處理模塊換成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默認(rèn)安裝了不少python包,其中包括django-userena。糟糕的是SAE將django-userena的demo項(xiàng)目也加到了python路徑,而且加載的優(yōu)先級比項(xiàng)目代碼還高。直接導(dǎo)致os.environ[‘DJANGO_SETTINGS_MODULE'] = ‘settings'找到的是userena的settings文件。最終將settings文件改名為qnotes_settings.py解決該問題。
其他問題
昨天部署上線后經(jīng)常出現(xiàn)數(shù)據(jù)庫錯(cuò)誤,錯(cuò)誤提示為Caught OperationalError while rendering: (1045, ‘a(chǎn)ccess deny') 。SAE數(shù)據(jù)庫不支持長連接,30s后主動超時(shí)。但django本就會在每次請求后自動關(guān)閉數(shù)據(jù)庫連接,理論上不應(yīng)當(dāng)出現(xiàn)類似問題。該問題今天莫名其妙的自己好了。
服務(wù)器非常不穩(wěn)定,經(jīng)常長時(shí)間的無法訪問,不定期的可以正常訪問。
SAE可能hack了python的包加載機(jī)制的原因,SAE的python包的加載行為有些奇怪。本應(yīng)當(dāng)最先加載當(dāng)前目錄下的包,實(shí)際上卻不一定。
相關(guān)文章
pycharm 將django中多個(gè)app放到同個(gè)文件夾apps的處理方法
今天小編就為大家分享一篇pycharm 將django中多個(gè)app放到同個(gè)文件夾apps的處理方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Python?OpenCV超詳細(xì)講解圖像堆疊的實(shí)現(xiàn)
OpenCV用C++語言編寫,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要傾向于實(shí)時(shí)視覺應(yīng)用,并在可用時(shí)利用MMX和SSE指令,本篇文章帶你通過OpenCV實(shí)現(xiàn)圖像堆疊2022-04-04Django+Vue實(shí)現(xiàn)文件上傳下載的項(xiàng)目實(shí)踐
本文主要介紹了Django+Vue實(shí)現(xiàn)文件上傳下載的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06使用Rasterio讀取柵格數(shù)據(jù)的實(shí)例講解
今天小編就為大家分享一篇使用Rasterio讀取柵格數(shù)據(jù)的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11