有时你的app应用,会用到多个平台,比如:Python + Node.js
ref: https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app
Flask网站轻松部署到免费主机Heroku(2) - 清除数据
vue2+Flask网站,轻松部署到免费主机Heroku(1)
HowTo:
heroku buildpacks --app <App Name>
=== <App Name> Buildpack URL
heroku/python
heroku buildpacks:set heroku/python
heroku buildpacks:add --index 1 heroku/nodejs
# 1 is the first buildpack
选择特定的Python版本:
create runtime.txt
file in root dir
cat runtime.txt
python-2.7.13
# or python-3.6.2
Anaconda Jupyter (IPython)
调试:
%pdb on
from IPython.core.debugger import Tracer
def f1(a, b):
Tracer()()
a+=b
Tracer()()
return a/b
f1(3, 2)
快捷键:
- l 显示上下文
- a(rgs) 打印所有变量
- b 显示断点
- n 下一行(step over)
- s step into
- u 返回上一级
- q 退出
Anaconda
Conda 支持IPython,集成了主要的科学计算python packages,300多MB,适合懒人下载
并且方便做环境管理、package管理
常用命令
创建虚拟环境:
conda create --name <环境名字> <安装哪些packages>
比如,创建一个python3的环境,装好 anaconda标准的packages:
conda create -n py35 python=3 anaconda
切换环境
conda env list
activate <环境名字>
deactivate
conda env export > environment.yml# 导出到文件
conda env create -f environment.yml
删除环境
conda remove --name flowers --all
在不同的python间切换
conda search python
$ conda create -n py27 python=2.7 anaconda
# 升级Python
$ conda update python
$ conda install python=3.6
管理包 Packages:
conda list -n snowflakes
conda search beautiful-soup
conda install --name bunnies beautiful-soup
#升级本身
conda update anaconda
Python3 新建应用
虚拟环境:
-
创建:python -m venv .\venv
-
激活:.\venv\Scripts\activate.bat
命令行会提示当前虚拟环境的名称 -
复制Heroku git
git clone https://git.heroku.com/<app_Name>.git
## 有时会提示git.heroku.com登录,这时,用户名:空,密码:Token
## get Token: heroku auth:token
## 本地修改、调试
pip freeze #显示所有依赖
pip freeze > requirements.txt #生成requirements.txt文件
pip install -r requirements.txt #根据requirements.txt生成相同的环境
保证有以下模块:
gunicorn==19.7.1
psycopg2==2.7.3.1
git add .git commit -m "xxx"
git push origin master
-
Heroku数据库初始化
heroku run bash --app xxx
python manage.py deploy
python manage.py initrole -
Heroku 环境变量:
FLASK_CONFIG = heroku -
本地运行Server
python manage.py runserver -
远程访问:xxx.herokuapp.com
heroku logs --app xxx
Python2 -> Python3
-
venv安装:
pip install Flask Flask_sqlalchemy Flask_security Flask_admin Flask_compress Flask_script Flask_Migrate -
print --> print()
-
try: except Except, e: --> except Except as e:
-
raw_input() --> input()
-
<> --> not is
-
from MyModule import func1 --> from .MyModule import func1
-- Flask_Security:
# security = Security(datastore=user_datastore)
# security.init_app(app) -->
security = Security()
security.init_app(app, user_datastore)
网友评论