エキPy読書会07 (2011/1/18)¶
- 日時:
2011/1/18 19:30 - 22:00
- 範囲:
5章(p155) パッケージを作る
エキスパートPythonプログラミングの読書会7回目 2011年1回目です!
質疑応答(覚えてる範囲)¶
- 質問: setup.py を書いたことある?OSS で公開してる?PyPI で公開してる?
A: 10人ぐらい、2人ぐらい、小宮さんだけ!
- 質問: 普通はアプリを作る方法を説明しそうだけど、先にパッケージを作る章があるのはなぜ?
- A: アプリを開発するのは、慣れてくると setup.py を書くようになる
アプリの実装が終わると PyPI に登録して公開が終わる ExPy 本はアプリの開発手順を Python の世界で行うための手順を順番に説明している
- 質問: develop でシステムの site-packages にインストールされるのを回避できますか?
- A: virtualenv か、buildout を使ってシステムの site-packages にインストールしない方法があります
目的は違いますが python 2.6 からユーザ毎の site-packages にインストールできます setup.py にオプション設定が必要なので、最も手軽なのは virtualenv を使う方法です
- 質問: egg をダウンロードしてきて直接インストールすることはできますか?
- A: egg は setuptools の easy_install コマンドでインストールできます
$ easy_install xxx.egg setup.py で find_links に記載することで任意のサイトから egg をダウンロードしてインストールしてくれます
- 質問: PyPI の classifiers で新規カテゴリを登録するにはどうするの?Joke カテゴリがほしい
- A: ごめんなさい、聞き漏らしました(> <) 補足ください
Web で PyPI にログインすると、リストからの選択で classifiers が表示される setup.py に未登録のカテゴリを記述すると無視されるんじゃないかな
- 質問: PyPI の機能を提供するサーバパッケージはありますか?
- A: haufe.eggserver, EggBasket,,, あともう1個あったと思います
メンテナンスがされているか分かりません egg サーバはファイルを配布するだけのサーバと 登録も受け付けるサーバも2種類のミラーサーバがあります Python JP は前者のファイルをダウンロードするだけです Apache の DirectoryIndex とか、Google Sites とか、DropBox でも大丈夫です PyPI のメインサーバは遅いのでミラーサーバが増えているようです a.pypi.python.org, b.pypi.python.org, c.pypi.python.org, d.pypi.python.org, e.pypi.python.org
- 質問: setup.py が高機能過ぎてコマンドが覚えられない
- A: setup.py はデファクトスタンダードではありますが Python の標準ではありません
今は setuptools があったり、distribute があったりしてさらにややこしい この後の章で setup.py を自動化するお話が出てくるので、 setup.py は必要に応じてリファレンスを見たり、書き換えたりする感じで良いです Python3 では distutils2 が標準になる予定です
- 質問: パッケージのテンプレートが便利なのは具体的にどんなときですか?
- A: Trac のプラグインのインストールが良い例です
Trac プラグインを easy_install で環境にインストールしただけでは使えません その後に trac-admin コマンドや Web インタフェースでインストールする必要があります Trac 本体がプラグインを探すような仕組みになっていれば良いのに、、、 新規開発中のパッケージでテンプレートを使わなくても良いけど、 名前空間を分割するときに setup.py を書くか、テンプレートを利用するかの判断になります
- 質問: 0.6 をリリースした後でマイナーバージョンアップしたいときにバージョンはどうする?
- A: 最初から 0.6.0 をリリースしておいて3桁で管理するのが良さそう
バージョンの付け方はお作法、流儀、ローカルルールで様々 自動的に付いた方が良いこともあるし、人間が付けた方が良いこともある(dev/rcとか)
参考¶
Togetter: http://togetter.com/li/90617