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