自作ライブラリを GitHub に置いて、そこから pip インストール出来るようにするまで
Rubyist でしたが Python もはじめました。
パーフェクト Python を Kindle で購入しましたが、検索出来ないし文字を選択できないのでコピペ出来なくて大変不便なので、物理版を購入すれば良かったと後悔しております。
話が逸れました。本題に。
これを書いている現在、当方 Python 歴数日 なので温かいアドバイスなどあれば是非ともよろしくお願いいたしますm(__)m
雛形を作る
paster create
を実行し、プロジェクトの設定を対話的に入力していきます。
$ pip install python_boilerplate_template
$ paster create
こんな感じになる。
$ tree -C hoge hoge ├── hoge │ └── __init__.py ├── hoge.egg-info │ ├── PKG-INFO │ ├── SOURCES.txt │ ├── dependency_links.txt │ ├── entry_points.txt │ ├── not-zip-safe │ └── top_level.txt ├── setup.cfg └── setup.py 2 directories, 9 files
実装
コードを書きます。
依存ライブラリを書いておく
requirements.txt
に依存ライブラリを書いていくのが普通っぽい。
んだけど、上述の雛形の作成方法だと requirements.txt
は作られないし、作成された setup.py
からは当然参照されなくて不便。
なので、setup.py
から requirements.txt
を参照させるようにして、作成したライブラリがインストールされるときにちゃんと依存ライブラリも一緒にインストールされるようにする。
--- a/setup.py +++ b/setup.py @@ -1,8 +1,14 @@ from setuptools import setup, find_packages -import sys, os +from pip.req import parse_requirements +import sys, os, pip version = '0.1' +requirements = [ + str(requirement.req) + for requirement in parse_requirements('requirements.txt', session = pip.download.PipSession()) +] + setup(name='hoge', version=version, description="test project", @@ -17,9 +23,7 @@ setup(name='hoge', packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), include_package_data=True, zip_safe=False, - install_requires=[ - # -*- Extra requirements: -*- - ], + install_requires=requirements, entry_points=""" # -*- Entry points: -*- """,
あとは
普通に実装が終わったら普通に GitHub にコードを上げる。
で、使うときはこんな感じで。
作成するアプリケーションの依存に突っ込みたい場合
requirements.txt に追記
-e git://github.com/youraccount/youreggname#egg=eggname
インストール
$ pip install -r requirements.txt
普通にインストールする場合
$ pip install -e git://github.com/youraccount/youreggname#egg=eggname