Glitch

MySQL, MongoDB, Python, Go

pip install web2pyでインストールされたスクリプトについて

前エントリの派生.
web2pyは公式からソース持ってきても簡単なんだけど,せっかくvirtualenv入れてるしpipでやってしまおうと.
現在PyPiにあるversionは1.98.2.最新の1.99.4じゃない...
とりあえずインストール方法おさらい.

$ mkvirtualenv web2py_demo
$ pip install web2py
ownloading/unpacking web2py
  Downloading web2py-1.98.2.tar.gz (4.7Mb): 4.7Mb downloaded
  Running setup.py egg_info for package web2py
Installing collected packages: web2py
  Running setup.py install for web2py
    changing mode of build/scripts-2.6/w2p_apps from 664 to 775
    changing mode of build/scripts-2.6/w2p_run from 664 to 775
    changing mode of build/scripts-2.6/w2p_clone from 664 to 775
    changing mode of /home/user/.virtualenvs/web2py_demo/bin/w2p_clone to 775
    changing mode of /home/user/.virtualenvs/web2py_demo/bin/w2p_apps to 775
    changing mode of /home/user/.virtualenvs/web2py_demo/bin/w2p_run to 775
Successfully installed web2py
Cleaning up...

スクリプト

メッセージから分かる通り,以下の三つのスクリプトがインストールされました.

  • w2p_clone
  • w2p_apps
  • w2p_run

これを全部使うのかっていうとそうでもありません.
PyPiにあるweb2pyのスクリプトは頻繁に変更されるみたいで,以前は名前が違いました.

変更前 変更後(現在)
web2py_clone w2p_clone
mkweb2pyenv w2p_apps
runweb2py w2p_run

Re: pip install web2py - Christopher Steel - com.googlegroups.web2py - MarkMail

なんか名前が変わって分かりづらくなったなぁ.appsでmakeね.

w2p_clone

端的に言ってしまえばvirtualenvの環境変数下にweb2pyディレクトリをインストールする方法.
公式ではこちらが推薦されているようです.
ソースはこちら.
w2p_clone -
web2py -


Enterprise Web Framework - Google Project Hosting

ソースを見れば分かるんですが,https://code.google.com/p/web2py/からソースを引っ張ってきています.んでhg cloneと.
当たり前なんですがこちらだとcode.google.comから引っ張ってくるんで,最新版(安定板)で環境構築できます.
PyPiにおいてあるweb2pyが前のバージョンでも大丈夫ってことですね.
以下試してみた結果です.

$ w2p_clone
$ python ~/.virtualenvs/web2py_demo/web2py/web2py.py --nogui --password=test
web2py Web Framework
Created by Massimo Di Pierro, Copyright 2007-2011
Version 1.99.4 (2011-12-31 14:37:01) stable
Database drivers available: SQLite3, pymysql
Starting hardcron...
please visit:
        http://127.0.0.1:8000
use "kill -SIGTERM 2477" to shutdown the web2py server

ちゃんと1.99.4になってる!
ただコマンドが長ったらしい?

w2p_appsとw2p_run

w2p_appsは,pip install web2py時にダウンロードしたenv.tarという圧縮ファイルを指定のディレクトリ,ないしカレントディレクトリに解凍.
w2p_apps -
web2py -


Enterprise Web Framework - Google Project Hosting

w2p_runは,上記w2p_appsで作成したディレクトリを指定,そこにあるweb2pyのソースを実行するというものです.
w2p_run -
web2py -


Enterprise Web Framework - Google Project Hosting

双方共にgluonモジュールというものを使っています.web2pyのモジュールかな?
こちらだと,ローカルでインストールができる,web2pyを展開するディレクトリが指定できる上,サーバもw2p_runコマンドで起動できるのですが,推薦されていないだけあってなんかちょっと動作が不安定っぽいです.
てかw2p_runのなかで環境変数思いっきり書き換えてるのがなんかちょっと...いいんだけども,気をつけないと行けない所.
それと,大きな違いはversion.こちらはpip install web2pyの時のversion,即ちPyPiに登録されているweb2pyのversionを使うため,バージョンが古いことがままあります.
実際2012/1/3現在,1.98.2が立ち上がるので古いです.

$ w2p_apps
Creating a web2py env in: /home/user/web2py_demo
$ w2p_run --nogui --password=test
web2py Web Framework
Created by Massimo Di Pierro, Copyright 2007-2011
Version 1.98.2 (2011-08-28 09:59:26)
Database drivers available: SQLite3
Starting hardcron...
please visit:
        http://127.0.0.1:8000
use "kill -SIGTERM 2454" to shutdown the web2py server

どっちを使う?

一応公式に推薦されているのはw2p_cloneなのでこちらを使おうと思います.
ただmakeとrunが分かれている方が何かと都合がいいかもなのでw2p_apps&w2p_runのコンビで最新版ちゃんとしてくれるといいなぁ.
てか,w2p_runの引数にvirtualenvの環境変数を入れればいいのでは.

$ w2p_run ~/.virtualenvs/web2py_demo/web2py/ --nogui --password=test
web2py Web Framework
Created by Massimo Di Pierro, Copyright 2007-2011
Version 1.99.4 (2011-12-31 14:37:01) stable
Database drivers available: SQLite3, pymysql
Starting hardcron...
please visit:
        http://127.0.0.1:8000
use "kill -SIGTERM 2500" to shutdown the web2py server

でけた.
うーむ,gluonモジュールが何か分かってないのでそこだけ怖いけどな...