Rubyistがgemの前にPypiデビューするのは間違っているだろうか

24
Rubyistgemの前に Pypiデビューするのは 間違っているだろうか chezou @ kawasaki.rb #024

Transcript of Rubyistがgemの前にPypiデビューするのは間違っているだろうか

Page 1: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

Rubyistがgemの前に

Pypiデビューするのは間違っているだろうかchezou @ kawasaki.rb #024

Page 2: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

祝!    2周年!

Page 3: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

chezouis organizer of

is podcasting

Page 4: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

近況

Page 5: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

某所から何かを感じる

• uさん「KyteaをPythonから使おうと思うんですがMykyteaをpip installできるようになりませんか?」

Page 6: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

KyTeaとは

• 読み推定もできる形態素解析器 (@neubig さん作)

• 簡単に言うとMeCabの親戚

• 部分アノテーションでも学習できる!

• MeCabとの違いは

• http://togetter.com/li/219734

Page 7: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

MyKyteaとは

• KyTeaのRuby / Python binding

• SWIGを使って実装

• 共通の.iファイルを作って、多プラットフォーム展開しやすい

Page 8: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

DEMO

Page 9: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

pipとは

• Python版gem

• chezouはgemはまだ作ったことがない

• Python版rubygems.orgのPypiにパッケージ登録

Page 10: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

gemより先にPypiとな

Page 11: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

Python書きたくないからJulia書いてるのに

Page 12: Rubyistがgemの前にPypiデビューするのは間違っているだろうか
Page 13: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

Ingressコミュニティの技術チャット• Pythonistaがいる部屋

• setup.pyの書き方や実例を教えてくれた

• PRのレビューもしてくれた!!!

Page 14: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

ところで

• PythonでのRakefileであるsetup.pyはSWIGを使えるだろうか

Page 15: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

http://docs.python.jp/2/distutils/setupscript.html

Page 16: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

おお、対応してるぞ!

Page 17: Rubyistがgemの前にPypiデビューするのは間違っているだろうか
Page 18: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

要約すると

• 外部ファイルのbuildが先に走らないから、カスタムビルドしてね★

Page 19: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

なぜか?

• やりたかったbuildフロー

• build_ext (SWIG動いてライブラリ生成)

• build_py (SWIG生成したファイルとPythonをつなげる)

• 通常のbuildフロー

• build_py

• build_ext

Page 20: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

https://bugs.python.org/issue7562

Page 21: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

興味がなかった

Page 22: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

どうしたか

• SWIGの生成物をPypiに登録

• travis CIはSWIGコマンドを叩くようにした

Page 23: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

なぜPypiか

• Rubyでリクエストが来たら先にやっていた

• Rubyistは自然言語処理とか興味ないのでは!?

Page 24: Rubyistがgemの前にPypiデビューするのは間違っているだろうか

まとめ

• Rubyistだけど、gemより先にPypiにパッケージ登録をした

• brew install kytea && pip install kytea

• Juliaのパッケージも作成している

• Rubyistとは