使用SAE部署Python运行环境的教程
2015-05-05 17:18
447 查看
因为 GAE 在国内访问不便,所以平时有一些小应用,我都会放在 SAE 上面, 虽然 SAE 还有很多缺陷,但算是上手比较容易的一个了,最起码文档写的不错。
开发 SAE 上的应用,我一般都用 Flask,SAE 预装了 Flask,所以你可以直接用, 但我们难免会用一些没有预装的库。
如果是在以前,可能需要自己将 package 挨个 copy 到应用目录中,然后手动加载, 现在嘛,不需要那么麻烦了,SAE 有个非常不错的解决方案,见《安装依赖的第三方包》
你可以使用 saecloud 来代替 pip 安装第三方库
saecloud install -r requirements.txt
这条命令会将第三方库安装在应用目录的 site-packages 目录下面,部署时可以将所有的依赖 打包成 zip 档案,这样上传和维护都很方便。
cd site-packages/ zip -r ../site-packages.zip .
在 index.wsgi 中将这些依赖加载进来
import os import sys root = 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'))
虽然是二者取其一,但学是推荐使用 zip 档案的方式。
有个问题是,我们需要打包的,只是 SAE 没有预装的包, 但我们本地开发还要依赖 Flask 这些预装的包, 都使用 saecloud 安装的话,这个包明显就会有冗余。
借鉴于 bower, npm 这些包管理器的依赖管理的优点, 我们显然应该将依赖库分离出来。
# 安装非预装依赖 pip install -r requirements.txt # 维护预装依赖 saecloud install -r requirements-dev.txt
这样,只有 requirements.txt 中的包会被安装到应用目录下的 site-packages 文件夹中。
经过一些实践,我整理了自己用着比较顺手的源代码文件结构
复制代码 代码如下: LICENSEMakefile
README.md
requirements-dev.txt
requirements.txt
site-packages
...
site <--- web app 目录
index.wsgi
main.py
config.yam
site-packages.zip <--- 打包的依赖库
...
我会将下面的文件加入到 .gitignore,以避免它们被提交到版本中。
复制代码 代码如下: /site-packages/site/site-packages.zip
/site/index.wsgic
为了方便安装依赖和部署项目,我写了个 Makefile
您可能感兴趣的文章:
相关文章推荐
- 使用SAE部署Python运行环境的教程
- python入门基础教程03 Python开发环境基本使用
- 白话MyCat——MyCat部署运行(Linux环境)与使用步骤详解
- Python虚拟环境Virtualenv使用教程
- MyCat部署运行(Windows环境)与使用步骤详解
- PowerShell入门教程之高效使用PowerShell交互式运行环境的几个小技巧
- HHVM安装使用教程-高效的PHP运行环境提升PHP性能9倍以上
- 使用FastCGI部署Python的Django应用的教程
- 使用FastCGI部署Python的Django应用的教程
- SAE部署Python-让云端自动运行Python代码
- Mac上安装 Ruby运行环境以及CocoaPods的安装使用教程
- 西秦的ACE-Python教程 一、Python本地开发环境部署
- Ubuntu14.04安装pycharm用于Python开发环境部署,并且支持pycharm使用中文输入
- 在Mac OS X上安装 Ruby运行环境 CocoaPods安装和使用教程
- Docker教程:使用docker配置python开发环境
- Docker教程:使用docker配置python开发环境
- Python+Django+SAE系列教程5-----使用存储器cpickle
- 使用sae-python-dev本地运行web.py项目出现module object has no attribute InteractiveInterpreter
- python开发环境部署以及调试教程