wheelを使って開発する

とりあえず、 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 !

blogroll

social