在SAE上部署Python的Django架構的一些問題匯總

來源:互聯網
上載者:User
花了些工夫將片段網部署到了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 threadingfrom django.utils import _threading_localthreading.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包的載入行為有些奇怪。本應當最先載入目前的目錄下的包,實際上卻不一定。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.