virtualenvwrapper でプロジェクト管理とか

ちょうど 1 年前にリリースされてた機能だけど、恥ずかしながら知らなかった。@t2y 先生が紹介していらっしゃって、後で試してみようと思ってたのですが...。virtualenvwrapper ってインストール時にグローバルな site-packages に放り込んで、後は。。。って感じ。あんま見直したことなかったのですが、プロジェクト管理以外にも結構色んな機能が追加されてるんですね。mkvirtualenv, workon だけじゃない!

ドキュメントを和訳してくださっている @t2y さんに多謝。基本的な機能やコマンド (と思いこんでいた mkvirtualenv, workon, etc...) についてはvirtualenv, virtualenvwrapper, pip を使う方法 by @IanMLewis さん, Pythonを取り巻く開発環境 (PyCon JP 2012資料 #pyconjp) by @ymotongpoo さんの記事が参考になります。

>>> mkvirtualenv

v3.3 から新しいオプションが増えてたんですね。これも知りませんでした。

  • -a <path/to/project>: プロジェクトに新しい env を関連付ける (後述)
  • -i <library_to_install>: env 作成と同時に、インストールしたいライブラリを指定する
    mkvirtualenv -i django -i django-celery-with-redis <env_name> のように複数指定できる
  • -r <path to requirements file>: env を作り requirements.txt 等指定したファイルに記載したライブラリを一括でインストールできる。個人的にこれは一番うれしいかも
    mkvirtualenv -r ./requirements.txt <env_name> ラクダーーー

>>> mktmpenv

これも v3.3 から。ユニークな名前で env 作成してくれる。

>>> cdvirtualenv, cdsitepackages

これは前からある。結構使う。私は activate, deactivate はよく書き換えるので、後述の cdproject と一緒に使うと幸せになれる。

>>> lsvirtualenv, lssitepackages

これも前からある。あんま使ったことない。workon, pip freeze -l でなれちゃってる。でも出力結果が細かかったり、lssitepackages は入力速くなりそう。

>>> add2virtualenv

これも前から。でも使ってる人あんま見たことない。add2virtualenv <path/to/external_libs> で、指定したディレクトリをカレント env に追加する。Django とか PySide 等でかいプロジェクトをいちいちチェックアウトしたくない場合を想定してあるらしい。これはシンボリックリンク、PIP_DOWNLOAD_CACHE, pip2pi とか色々解決方法があるけど、プロジェクトごとにライブラリのバージョン違ったりするので、今のとこ env 毎に全部インストールしちゃってる。

>>> toggleglobalsitepackages

v3.3 から。これ知らなかったのは辛い...。グローバル site-packages に入れてるのは、bpython, tox, py.test, mock, virtualenvwrapper などなど。setup.py で test_requires に書いてあるやつとか, requirements.txt にも書いてないライブラリーは基本グローバルに放り込んでる。グローバルが汚れるのはもちろん嫌だけど、env もなるべく汚したくない。使いたい時だけグローバル site-packages をパスに追加する。動作は virtualenv でやってたのと同様に "no-global-site-packages.txt" を作成したり、削除したりしてるだけです。ありがたい。

>>> mkproject

本題。v3.3 から。もともとプラグインで提供されてたらしい。1 プロジェクト 1 env
mkproject [-t <project_template>] [mkvirtualenv options] <env_name>

環境変数で指定された PROJECT_HOME にプロジェクトディレクトリを追加、かつ WORKON_HOME に対応する env を作ってくれる。env 名はプロジェクトディレクトリ名になります。

プロジェクト作成時用の素敵なテンプレート機能も用意されています。テンプレートは github, bitbucket, django, flask 等色々。例えば mkproject -t github <env_name> ってやると github 上に env 名のプロジェクトを作ってくれます。mkproject -t django <env_name> ってやると、django-admin create project <env_name> を実行して、スケルトン作ってくれます。

>>> setvirtualenvproject

setvirtualenvproject <virtualenv_path> <project_path> で既存の env とプロジェクトディレクトリをひもづけてくれる。

>>> cdproject

アクティブな env に関連付けられたプロジェクトディレクトリに飛んでくれる。コンソール開いて workon <env_name>; cdproject ってやると env 適用して、対応するプロジェクトディレクトリをカレントディレクトリにしてくれるという。素敵ですね!

たまにはグローバルな site-packages に入れっぱなしのライブラリーも見直してみるもんですね。

#PySpa アドベント (23 日目)

PySpa がどんなイベントかは既に紹介されつくした感じですね。そもそも勉強会は "特定のテーマを共有し理解を深める" という目的のものが多いと思っています。PySpa は、それより "勉強したくなるようなテーマを発見する" ってのが大きいと個人的に思っています。私は
  • 勉強したいテーマを見つける
  • 童心に返って技術を楽しむ
  • 煙草エリアのベンチを温める
ために行っています。与えられてばかり、お世話になってばかりです。モチベーションしかり、趣味しかり、仕事しかり。

谷川岳登山 #kabepy

Hython 部の方から来ました。こんにちは。今回は Python ボルダリング部 (通称 #kabepy) のアドベントカレンダーにお邪魔させて頂きます。もともと Hython 部は Pythonista が廃村に行くとかいうノリで始まったんですが、廃村が山奥にあることが多く、いつの間にかワンダーフォーゲル部になってしまいました。昔の日本は林業大国だったんですね。
今年 (2012年) の登山成果は、
  • 谷川岳 - 一ノ倉 - 茂倉岳縦走
  • 富士登山
  • 槍ヶ岳縦走
  • 浅間山縦走
  • 丹沢縦走
です。#kabepy のアドベントカレンダーなので "ロッククライミングのメッカ" と言われている谷川岳について書かせて頂きます。

谷川岳について

谷川岳 - Wikipedia に詳しく書かれていますが、
  • 剣岳、穂高岳と共に日本三大岩場のひとつ
  • 日本三大急登 (高低差) がある
  • 遭難による死者数が世界一 (ギネス認定
なんとも物騒な感じですが、コースによります。私が登ったコースは、とても登りがいがあり、稜線が素敵なコースでした。まだ登山歴 2 年目ですが、また登りたいと思った山は谷川岳だけ。@rokujyouhitoma 先生の故御父様も谷川岳をこよなく愛されていたそうです。

コース

直線距離: 約15km / 高低差: 1.5km / 全 7.5 時間 ぐらいですかね。小雨。
  • 07:30 - 土合駅
  • 08:00 - 天神平
    晴れてる時は富士さんが見えるらしい。残念ながら ガスで10m 先も見えない。
  • 10:00 - 谷川岳トマの耳 (1,963m)
    鎖場あり。岩場あり。登りごたえのある登山コースです。が!写真撮れません。ガスがひどくてシャッター下りません。立派なプレートだけ。
  • 11:00 - 谷川岳オキの耳 (1977m)
    景色?なにそれ。立派なプレート。
    稜線の所だけガスが晴れた瞬間。ここから人とすれ違わなくなります。高山植物がいたるところに生えていて、ハエが大量にいます。が!写真撮れませんでした。
  • 12:00 - 一ノ倉岳 (1974.2m)
    立派な・・・
    手前に万年雪があります。ガスもあってただ一面白いだけ。ここもオートフォーカスが効かないという。
  • 13:00 - 茂倉岳 (1977.9m)
    茂倉の稜線は美しい!ここを走るのは快感です!茂倉だけでもまた行きたい。(晴れてる時の稜線)。登るだけではなく、滑走できるのも登山の魅力。トレイルランニングには最適なコースです。
  • 15:00 - 土樽駅
せっかくなので、岩場とか鎖場とかの写真を何枚か。これは @hidecheck 先生に撮っていただいた奴。こんな岩場 #kabepy の方たちは朝飯前ですよね!
岩場。
鎖場。
谷川岳の魅力が少しでも伝われば良いのですが、少々不安です。。自分が超絶雨男なのが残念です。今年は浅間山以外全部悪天候でした orz
是非壁な方も外山にも登りに行きませう

最期に日本最高峰剣ヶ峰から見える雲海と御来光。