6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonbrewでPythonインストールしてFlaskをWSGIサーバで動かすまで

Last updated at Posted at 2013-10-17

##はじめにおことわりの追記
いきなりだけど僕は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

簡単なアプリ

hello.py
# 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
で見える。

解散!

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?