機械学習や自然言語処理でごにょごにょ試してみるときには、大体の場合データが必要で、どこからか取得してくるか作る必要がある。日本語のデータはあまり多くはなくて、とりあえず試しに動かす程度でいいやってときは自分で適当なデータ作ったりするんだけど、毎回手作業で作るのめんどいから、とりあえずスクリプトでサクッと取ってこれる状態にしたい。そこでpip installしたらデータをロードする関数をimport出来るようなパッケージを作りたい。
ひとまず今回は自作のpip用パッケージを試してみる。自分しか使わないのでPyPIには登録せず、GitHubのURLを指定してpip installするパッケージにする。
参考
Pythonで作成したライブラリを、PyPIに公開/アップロードする - Qiita
公式かな?パッケージのテンプレがあるのでこれをベースに進める。
作ってみる
say()と実行したらhooと標準出力されるパッケージを作る。
まずは上記のテンプレをcloneするなりダウンロードするなりして手元に保存。
不要そうなファイルやディレクトリを適当に削除。使わなそうだったのでdataディレクトリを削除してみた。ルート直下のsampleディレクトリをsample-dtディレクトリに更新する。
gitでコミットしてsample-dtというパッケージ名でリポジトリを作成(パッケージ名は好きな名前で)。
$ git add . $ git commit $ git create sample-dt $ git push
pipでインストールしてみる。dataディレクトリを消しちゃったけどsetup.pyを修正してなかったためエラーぽい。
$ pip install git+https://github.com/<your_github_id>/sample-dt error: can't copy 'data/data_file': doesn't exist or not a regular file
setup.pyのdata_files部分をコメントアウトして再びgitにcommitしてpushする。
再びpip installすると成功。
say()を実行してみる。
$ python
>>> from sample-dt.say import hoo
File "<stdin>", line 1
from sample-dt.say import hoo
^
SyntaxError: invalid syntax
importする際にハイフンがダメっぽい。ディレクトリ名を変更する。変更するディレクトリは、ルート自身のディレクトリ名ではなく、ルート直下のsample-dtディレクトリ。これをsampledtに変更。
$ python >>> from sampledt.say import hoo >>> hoo() hoo
出来たー!