pip の bundle 機能

Pylons および依存パッケージを1つの pybundle ファイルにまとめる。

$ pip bundle pylons.pybundle Pylons

以下のようなパッケージ一覧ファイルを用意して、 requirement オプションで渡すとベター

$ cat requirements.txt
Beaker==1.2.2
FormEncode==1.2.1
Mako==0.2.4
Paste==1.7.2
PasteDeploy==1.3.3
PasteScript==1.7.3
Pygments==1.0
Pylons==0.9.7rc6
Routes==1.10.3
Tempita==0.3
WebError==0.10.1
WebHelpers==0.6.4
WebOb==0.9.6.1
WebTest==1.1
decorator==3.0.1
nose==0.10.4
simplejson==2.0.9
wsgiref==0.1.2
$ pip bundle -r requirements.txt pylons.pybundle 

pybundle ファイルから Pylons をインストール(ネットワーク接続不要)

$ pip install pylons.pybundle

インストール済みパッケージのスナップショットを取ることもできる。

$ pip freeze 
Beaker==1.2.2
FormEncode==1.2.1
Mako==0.2.4
Paste==1.7.2
PasteDeploy==1.3.3
PasteScript==1.7.3
Pygments==1.0
Pylons==0.9.7rc6
Routes==1.10.3
Tempita==0.3
WebError==0.10.1
WebHelpers==0.6.4
WebOb==0.9.6.1
WebTest==1.1
decorator==3.0.1
nose==0.10.4
simplejson==2.0.9
wsgiref==0.1.2

また、 site-packages ディレクトリの下には egg-info とパッケージが個別にインストールされるので、パッケージのみを zip で固めることも可能。

$ pip zip weberror
Zip weberror (in ./lib/python2.5/site-packages/weberror)

これは pkg_resources の機能を Google App Engine と合わせて使う時に役立ちそう。
egg-info ごとアーカイブされていると、現在の appengine 1.1.9 では pkg_resources の一部機能が使えないから。

posted by id:junya_hayashi