將flask部署到新浪雲的問題?

按照&這本書寫了個博客。寫完之後想部署到新浪雲上去,然後問題來了,我本地用的是Python3.4 而新浪雲用的是2.7,光看代碼貌似沒什麼兼容性問題,於是我簡單地把requirements.txt 改成了書裡面的flasky/requirements at master · miguelgrinberg/flasky · GitHub

然後用sinacloud.com 的頁面 安裝好了第三方依賴包,上傳到新浪雲,貌似一切很順利嘛。結果就報錯了。

錯我頁面:sinaapp.com 的頁面

百事不得其解的是報了這個錯誤,flask-wtf我已經安裝好了啊,那一定是兼容性問題了,哪個大神能指點一下,我實在找不出錯誤來了

補充:

把第三方的sitepackages傳了,之前就傳了的,index.wsgi也加了路徑。

Expelliarmus923/FlaskBlog · GitHub 順便貼上博客源碼。基本是那本書的源碼,只是加了個刪除功能,以及各種前端特效。

9月07更新,解決了,渣浪官方的saecloud太坑了,沒幫我把WTForms裝上去,我也是眼瞎啊沒看到,最後在虛擬環境下用pip安裝好第三方類庫,把site-packages複製到svn根目錄就解決了。


謝邀。

我認為你出的問題可能是你對python的包依賴和虛擬環境env沒有理解清楚。要是錯了告訴我回頭刪答案。

是這樣:

1、當你按照&的說明,在本地建立虛擬環境後,安裝好任何依賴包,你本地跑起來了。之後你把虛擬環境整個包連同項目文件傳到伺服器,是不行的,會跑不起來。這就是你當前遇到的問題。

2、「http://sinacloud.com 的頁面」這個頁面給你的東西是本地模擬新浪雲的環境,讓你在本地開發、本次測試時能貼合線上環境,發現更多問題。因為環境不同,有些問題在A環境發生,在B環境可能就不發生了,反之亦然。所以這個頁面給你的工具主要就是為了讓開發和生產環境盡量貼合。

3、接第1個問題。Python有環境註冊機制。簡而言之,你在本地安裝好的虛擬環境和依賴,會有專門的文件記錄相應細節,這個文件不在項目文件夾里,而寫入專門的位置或環境變數(一般如此)。當你把項目文件和虛擬環境搞到另一台電腦或者伺服器里的時候,這個記錄細節的文件就丟失掉了。所以你一運行你的程序,程序會默認去找新浪雲自帶的默認python版本,而此時你的依賴庫文件只是存在於你傳上去的文件夾,但你的程序壓根就忽視他,因為沒註冊憋。所以會出現包找不到的問題。當然,這是簡而言之,細節不一定準確,因為一般也不會找到所謂的這個文件或拷貝細節出來傳到其他伺服器里。

4、解決方案:&也講明了:讓你用pip命令導出虛擬環境的依賴生成requirements.txt這個文件,之後在你要傳到的伺服器上重新安裝虛擬環境工具,重新虛擬一個環境,之後把requirements.txt傳到線上伺服器,在運行pip -r 命令重新安裝依賴。書上就是告訴你這麼乾的,在末尾幾章,難道你沒讀完?

不過,還是要說,版本要統一啊,虛擬環境你虛擬個3.4就行了,反正順手辦了。


謝邀。你安裝的包新浪雲里沒有,必須一同上傳,這個你在新浪雲的文檔里找第三方包的使用,裡面有講,手機回答不方便給鏈接,很好找的


推薦閱讀:

有一點 Python 與 SQL 基礎,想學習開發網站,Django,Karrigell,Webpy 這 3 個哪個更加適合我呢?
Python3.5+Mongodb+Flask Web實戰坑點小結【Dog Plus】
Flask文件上傳(二):使用擴展實現

TAG:SinaAppEngine | Flask |