=========================== エキ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とか) 参考 ====== * ATND: http://atnd.org/events/11665 * Togetter: http://togetter.com/li/90617