##はじめにおことわりの追記
いきなりだけど僕はpythonbrewもう使っていません。
理由はいくるかあるんだけど
pythonbrewがもうメンテされてなかったです
今だとpythonzでしょうか。複数バージョンをインストールしたい場合はpythonz使うといいと思います。
でも僕は今pythonzも使ってないです。
そもそも複数バージョン必要無かった
たまにライブラリの都合で2系と3系を切り替えるくらいで、それなら別に外部ツール使わなくてもできる。
Macには2系は入っていて、あとはbrewとかで3系入れれば事足りる。
あと複数バージョンが必要なときって、なんだろ、ぼくの場合は何か公開するためにテストするときくらいなんだけど、それもTravis CIとか使えば出来るしなあ、とか。
バージョンを切り替えたいんじゃなくて、環境を汚したくないだけだった
思えばpythonbrewでよく使ってたのは仮想環境作るのだけだった。それvenvじゃん。
ということで、自分のマシンには、シンプルにvenvで環境を作ることで落ち着きました。普通! 今のところ困ること一つも無いです。みんなが良いっていう方法は良いの法則。
追記おしまい。
##インストール
###pythonbrew入れる
$ git clone https://github.com/utahta/pythonbrew
$ ./pythonbrew-install
パス通す
$ vi ~/.bashrc
source $HOME/.pythonbrew/etc/bashrc
# rootで入れた場合はこっちかもよ〜↓↓↓
source /usr/local/pythonbrew/etc/bashrc
.bashrc読み直すと、pythonbrew か pybrew コマンドが使える
###Python入れる
# 思い切ってもうv3で!
$ pybrew install 3.3.0
$ pybrew venv create testenv -p 3.3.0 #testenvは任意
※追記だけども、macでやるなら frameworkオプションつけたほうがいいかも。大抵問題ないけど、matplotlib とか使うときにおこられてあとで再インストールした。
$ pybrew install --framework 3.3.0 # macのばあい
###使う
$ pybrew venv use testenv
$ python --version
Python 3.3.0 # わーい
###いろいろ入れる
#pybrewでなんかuseしてる状態で
$ pip install Flask
$ pip install WTForms
$ pip install sqlalchemy
$ pip install psycopg2 #PostgreSQLの場合
$ pip install flask-mail
$ pip install Flask-Script
$ pip install Beaker #セッション管理
$ pip install uwsgi
簡単なアプリ
# coding=utf-8
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'こんにちは'
@app.route('/indo')
def hello_world_indo():
return 'नमस्ते'
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True)
起動
$ python hello.py
http://[サーバのIP]:5000
で見える。やったー。
uWSGIから起動
開発中は、さっきみたいにuWSGI使わずに普通に起動して開発して、本番環境では、nginx+uWSGI+Flask みたいな感じ。
今回はuWSGI使ってほんとに起動できんのかよ、みたいなのを試すだけ。
$ uwsgi --http :9090 --python-path /var/app/testpy -w hello:app
http://[サーバのIP]:9090
で見える。
起動スクリプトとかにするにはこれだとだめかも。
いつでも動く版はこっち。
$ /usr/local/pythonbrew/venvs/Python-3.3.0/testenv/bin/uwsgi --http :9090 -H /usr/local/pythonbrew/venvs/Python-3.3.0/testenv --python-path /var/app/testpy -w hello:app
http://[サーバのIP]:9090
で見える。
解散!