2008年07月10日

setuptoolsでモジュールのバージョンを指定する方法

はてなブックマークに登録

ほとんどのPythonistaがお世話になっているeasy_install (setuptools) ですが、よく、

$ easy_install "SQLAlchemy == 0.4.6"

のようにバージョン指定してモジュールをインストールすることがあります。

バージョン指定には不等号も使うことができるのですが、例えば0.4系の新バージョンが出てupgradeする場合に、

$ easy_install -U "SQLAlchemy < 0.5"

として最新版を自動的に探してupgradeしようとすると、0.5beta1がインストールされてしまいました。確かに 0.5betaは0.5よりも前のバージョンだろうけど…あぅあぅ…ということで、setuptoolsがバージョンをどう扱うか 調べてみました。

バージョン番号について

リリース番号
1.2.3 みたいな部分
タグ
1.2.3foobar のうち foobar の部分
プレリリースタグ
タグが辞書順で"final"よりも前だと、プレリリースタグになる。 ただし、rc、pre、preview は文字cと同じ扱い。 プレリリースタグがつくと、タグなしの同じリリース番号が示すバージョンよりも 過去のバージョンになる。 1.2.3pre3 < 1.2.3
ポストリリースタグ
タグが辞書順で"final"よりも後ろだと、ポストリリースタグになる。'-'も使える。 ポストリリースタグがつくと、より新しいバージョンを示す。 1.2.3 < 1.2.3r2 , 1.2.3rc1 < 1.2.3rc1-20080707

バージョン条件の指定の仕方

easy_install や、 setupスクリプトの依存関係記述において、バージョンに関する 複数の条件を、カンマで区切って指定できる。

$ easy_install "SQLAlchemy >= 0.4, < 0.5a"


いままで自分でsetupスクリプト(setup.py)を書くときに、○○以上というバージョン指定しか してなかったのですが、そのパッケージをeasy_installでインストールする人が依存パッケージの 自動インストールで想定したより新しい、しかもα版のパッケージをインストールしてしまったり していたので、これからは○○以上△△未満という形で書いていこうと思います。


@methane
klab_gijutsu2 at 18:38│Comments(0)TrackBack(0)Python 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
Blog内検索
Archives
このブログについて
DSASとは、KLab が構築し運用しているコンテンツサービス用のLinuxベースのインフラです。現在5ヶ所のデータセンタにて構築し、運用していますが、我々はDSASをより使いやすく、より安全に、そしてより省力で運用できることを目指して、日々改良に勤しんでいます。
このブログでは、そんな DSAS で使っている技術の紹介や、実験してみた結果の報告、トラブルに巻き込まれた時の経験談など、広く深く、色々な話題を織りまぜて紹介していきたいと思います。
最新コメント