とりあえず、 pyvenv で作った仮想環境に pip がインストールされているというところから。
pyramid の開発を例にします。
wheelをインストールする
wheelパッケージを使うために wheel <http://pypi.python.org/pypi/wheel> をインストールします。
$ pip install wheel --use-wheel
pip は1.4以降でwheelパッケージをインストールできます。 しかし、 setuptools は、wheelパッケージを作成できません。 wheel をインストールすると、setup.pyで bdist_wheel というサブコマンドが使えるようになります。 また、 pip でも wheel サブコマンドが使えるようになります。
wheelでライブラリをインストールする
現在PyPIにはそれほどwheelパッケージはあげられていないため、sdistパッケージを使ってローカルでwheelパッケージを作成します。
pyramidとその依存ライブラリのwheelパッケージを作成する:
$ pip wheel pyramid --pre
wheelパッケージをインストールする:
$ pip install pyramid --use-wheel --find-links=wheelhouse --no-index
開発環境
pyramidでは pcreate コマンドでプロジェクトを開始するときに必要なファイルなどを自動生成します。 今回はZODBを利用したプロジェクトとします。
$ pcreate -s zodb mywork
プロジェクトの依存ライブラリをwheelインストール
$ pip wheel mywork --find-links=wheelhouse --use-wheel --pre $ pip install -e mywork --find-links=wheelhouse --use-wheel --pre --no-index
wheelしたときに開発対象のプロジェクトのwheelパッケージも作成されますが、そのあとのinstallで対象外になるので気にしないようにしましょう。
この時点で、 pip 以外は wheelパッケージから展開されて、 METADATA 2.0 をサポートした dist-info 形式でインストールされています。
まとめ
依存ライブラリの扱いはwheelで十分可能になっています。(オプション指定が多いですが)
が、 pserveコマンドが利用するPasteDeplyは egg(というかpkg_resources)に依存しているため、ツールなどを含めるとまだ完全な移行は難しい状態です。
Comments !