国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

使用SAE部署Python運(yùn)行環(huán)境的教程

2019-11-25 17:32:28
字體:
供稿:網(wǎng)友

因?yàn)?GAE 在國(guó)內(nèi)訪問不便,所以平時(shí)有一些小應(yīng)用,我都會(huì)放在 SAE 上面, 雖然 SAE 還有很多缺陷,但算是上手比較容易的一個(gè)了,最起碼文檔寫的不錯(cuò)。

開發(fā) SAE 上的應(yīng)用,我一般都用 Flask,SAE 預(yù)裝了 Flask,所以你可以直接用, 但我們難免會(huì)用一些沒有預(yù)裝的庫。

如果是在以前,可能需要自己將 package 挨個(gè) copy 到應(yīng)用目錄中,然后手動(dòng)加載, 現(xiàn)在嘛,不需要那么麻煩了,SAE 有個(gè)非常不錯(cuò)的解決方案,見《安裝依賴的第三方包》

你可以使用 saecloud 來代替 pip 安裝第三方庫

saecloud install -r requirements.txt

這條命令會(huì)將第三方庫安裝在應(yīng)用目錄的 site-packages 目錄下面,部署時(shí)可以將所有的依賴 打包成 zip 檔案,這樣上傳和維護(hù)都很方便。

cd site-packages/zip -r ../site-packages.zip .

在 index.wsgi 中將這些依賴加載進(jìn)來

import osimport sysroot = os.path.dirname(__file__)# 兩者取其一sys.path.insert(0, os.path.join(root, 'site-packages'))sys.path.insert(0, os.path.join(root, 'site-packages.zip'))

雖然是二者取其一,但學(xué)是推薦使用 zip 檔案的方式。

有個(gè)問題是,我們需要打包的,只是 SAE 沒有預(yù)裝的包, 但我們本地開發(fā)還要依賴 Flask 這些預(yù)裝的包, 都使用 saecloud 安裝的話,這個(gè)包明顯就會(huì)有冗余。

借鑒于 bower, npm 這些包管理器的依賴管理的優(yōu)點(diǎn), 我們顯然應(yīng)該將依賴庫分離出來。

# 安裝非預(yù)裝依賴pip install -r requirements.txt# 維護(hù)預(yù)裝依賴saecloud install -r requirements-dev.txt

這樣,只有 requirements.txt 中的包會(huì)被安裝到應(yīng)用目錄下的 site-packages 文件夾中。

經(jīng)過一些實(shí)踐,我整理了自己用著比較順手的源代碼文件結(jié)構(gòu)

復(fù)制代碼 代碼如下:
LICENSE
Makefile
README.md
requirements-dev.txt
requirements.txt
site-packages
  ...
site   <--- web app 目錄
  index.wsgi
  main.py
  config.yam
  site-packages.zip   <--- 打包的依賴庫
  ...

我會(huì)將下面的文件加入到 .gitignore,以避免它們被提交到版本中。

復(fù)制代碼 代碼如下:
/site-packages
/site/site-packages.zip
/site/index.wsgic

為了方便安裝依賴和部署項(xiàng)目,我寫了個(gè) Makefile

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 湖州市| 监利县| 淄博市| 贵溪市| 天津市| 太谷县| 牟定县| 绥滨县| 沂南县| 五常市| 涞源县| 曲阳县| 达日县| 金平| 瑞丽市| 周至县| 红原县| 新干县| 东明县| 枣阳市| 沅陵县| 深州市| 红原县| 衡阳县| 乐亭县| 遂溪县| 昌宁县| 柏乡县| 定南县| 银川市| 浮山县| 新绛县| 迭部县| 紫阳县| 易门县| 宁海县| 武威市| 徐闻县| 西乡县| 克什克腾旗| 福安市|