Skip to content

Instantly share code, notes, and snippets.

@shotarok
Created October 22, 2016 05:24
Show Gist options
  • Save shotarok/6635691c371aa4e30c1f9d3b776037b3 to your computer and use it in GitHub Desktop.
Save shotarok/6635691c371aa4e30c1f9d3b776037b3 to your computer and use it in GitHub Desktop.
A patch to add a dependency to setup.py for pyknp-0.3
--- pyknp-0.3/old_setup.py 2016-10-22 14:18:26.000000000 +0900
+++ pyknp-0.3/setup.py 2016-10-22 14:18:48.000000000 +0900
@@ -25,4 +25,5 @@
url='https://bitbucket.org/ku_nlp/pyknp',
scripts=['pyknp/scripts/knp-drawtree', ],
packages=find_packages(),
+ install_requires=['six'],
)
@shotarok
Copy link
Author

shotarok commented Oct 22, 2016

https://github.com/ku-nlp/jumanpp/tree/master/sample を動かす README の pull req を書いてみようと思い pyknp 入れそうとしたら, 依存モジュールが setup.py に書かれていなくて実行できなかったのでパッチを作成しました. 以下は実行できなかった際のログとパッチを作成した際のログです.

実行失敗時のログ

# virtualenv で venv を作成
$ /usr/local/lib/python2.7/site-packages/virtualenv.py venv
New python executable in /Users/shotarok/work/jumanpp/sample/venv/bin/python2.7
Also creating executable in /Users/shotarok/work/jumanpp/sample/venv/bin/python
Installing setuptools, pip, wheel...done.
$ source venv/bin/activate                                           

# http://nlp.ist.i.kyoto-u.ac.jp/index.php?PyKNP からダウンロードした tarball から pip install でも six は入らない… >< 
$ pip install pyknp-0.3.tar.gz 
Processing ./pyknp-0.3.tar.gz
Building wheels for collected packages: pyknp
  Running setup.py bdist_wheel for pyknp ... done
  Stored in directory: /Users/shotarok/Library/Caches/pip/wheels/8b/f7/1f/b094c6b7301c890b85f665ccb6fe7a7f6ae2be37749da83118
Successfully built pyknp
Installing collected packages: pyknp
Successfully installed pyknp-0.3

# python_knp.py を実行しようとすると失敗する
$ python python_knp.py 
Traceback (most recent call last):
  File "python_knp.py", line 3, in <module>
    from pyknp import KNP
  File "/Users/shotarok/work/jumanpp/sample/venv/lib/python2.7/site-packages/pyknp/__init__.py", line 1, in <module>
    from pyknp.juman.morpheme import Morpheme
  File "/Users/shotarok/work/jumanpp/sample/venv/lib/python2.7/site-packages/pyknp/juman/morpheme.py", line 6, in <module>
    import six
ImportError: No module named six

patch の作成時のログ

# virtualenv で venv を作成
$ /usr/local/lib/python2.7/site-packages/virtualenv.py venv
New python executable in /Users/shotarok/work/jumanpp/sample/venv/bin/python2.7
Also creating executable in /Users/shotarok/work/jumanpp/sample/venv/bin/python
Installing setuptools, pip, wheel...done.
$ source venv/bin/activate                                           

# patch の作成
$ tar xvf pyknp-0.3.tar.gz    
x pyknp-0.3/
x pyknp-0.3/pyknp/
x pyknp-0.3/pyknp/evaluate/
...
$ emacs pyknp-0.3/setup.py 
$ diff -Naur pyknp-0.3/old_setup.py pyknp-0.3/setup.py | tee six_is_required.patch 
--- pyknp-0.3/old_setup.py  2016-10-22 14:18:26.000000000 +0900
+++ pyknp-0.3/setup.py  2016-10-22 14:18:48.000000000 +0900
@@ -25,4 +25,5 @@
     url='https://bitbucket.org/ku_nlp/pyknp',
     scripts=['pyknp/scripts/knp-drawtree', ],
     packages=find_packages(),
+    install_requires=['six'],
 )

# setup.py 修正後のモジュールをインストール. ちゃんと six も入る.
$ pip install ./pyknp-0.3
Processing ./pyknp-0.3
Collecting six (from pyknp==0.3)
  Using cached six-1.10.0-py2.py3-none-any.whl
Building wheels for collected packages: pyknp
  Running setup.py bdist_wheel for pyknp ... done
  Stored in directory: /Users/shotarok/Library/Caches/pip/wheels/3f/15/81/3b6fb2918abdbf3116ca4bbd11e4bde25ba3cb10c11f7b8fb1
Successfully built pyknp
Installing collected packages: six, pyknp
Successfully installed pyknp-0.3 six-1.10.0

# python_knp.py で動作確認
$ python python_knp.py
な,の,は,が,なのはな,と,ごっち,ゃ,な,の,は,よみ,にくい
なのは,が,なのはな,と,ごっちゃ,な,の,は,よみ,にくい
ID:0, 見出し:なのはが, 係り受けタイプ:D, 親文節ID:3, 素性:<文頭><人名><ガ><助詞><体言><係:ガ格><区切:0-0><格要素><連用要素><名詞項候補><先行詞候補><SM-人><SM-主体><正規化代表表記:なのは/なのは><解析格:ガ>
ID:1, 見出し:なのはなと, 係り受けタイプ:P, 親文節ID:2, 素性:<ト><助詞><体言><係:ト格><並キ:名><区切:1-2><並列タイプ:AND><格要素><連用要素><名詞項候補><先行詞候補><正規化代表表記:菜の花/なのはな>
ID:2, 見出し:ごっちゃなのは, 係り受けタイプ:D, 親文節ID:3, 素性:<ハ><助詞><体言><用言:判><係:未格><レベル:B><区切:5-5><ID:〜の〜><提題受:10><格要素><連用要素><状態述語><判定詞><名詞項候補><先行詞候補><正規化代表表記:ごっちゃ/ごっちゃ><用言代表表記:ごっちゃ/ごっちゃ><時制-無時制><格解析結果:ごっちゃ/ごっちゃ:判0:ガ/U/-/-/-/-><解析格:ヲ>
ID:3, 見出し:よみにくい, 係り受けタイプ:D, 親文節ID:-1, 素性:<文末><準否定表現><態:可能><〜にくい><用言:動><レベル:C><区切:5-5><ID:(文末)><提題受:30><主節><動態述語><正規化代表表記:読む/よむ?詠む/よむ><用言代表表記:読む/よむ+にくい/にくい?詠む/よむ+にくい/にくい><時制-未来><主題格:一人称優位><格関係0:ガ:なのは><格関係2:ヲ:ごっちゃ><格解析結果:詠む/よむ:動2:ガ/C/なのは/0/0/1;ヲ/N/なのはな/1/0/1;ヲ/N/ごっちゃ/2/0/1;ニ/U/-/-/-/-;ト/U/-/-/-/-;デ/U/-/-/-/-;カラ/U/-/-/-/-;ヨリ/U/-/-/-/-;時間/U/-/-/-/-;外の関係/U/-/-/-/-;ノ/U/-/-/-/-;修飾/U/-/-/-/-;トスル/U/-/-/-/->
見出し:なのは, 読み:なのは, 原形:なのは, 品詞:名詞, 品詞細分類:人名, 活用型:*, 活用形:*, 意味情報:自動獲得:Wikipedia Wikipedia人名 Wikipedia名 Wikipedia多義 疑似代表表記 代表表記:なのは/なのは, 代表表記:なのは/なのは
見出し:が, 読み:が, 原形:が, 品詞:助詞, 品詞細分類:格助詞, 活用型:*, 活用形:*, 意味情報:NIL, 代表表記:
見出し:なのはな, 読み:なのはな, 原形:なのはな, 品詞:名詞, 品詞細分類:普通名詞, 活用型:*, 活用形:*, 意味情報:代表表記:菜の花/なのはな カテゴリ:植物 ドメイン:料理・食事, 代表表記:菜の花/なのはな
見出し:と, 読み:と, 原形:と, 品詞:助詞, 品詞細分類:格助詞, 活用型:*, 活用形:*, 意味情報:NIL, 代表表記:
見出し:ごっちゃ, 読み:ごっちゃ, 原形:ごっちゃ, 品詞:名詞, 品詞細分類:普通名詞, 活用型:*, 活用形:*, 意味情報:代表表記:ごっちゃ/ごっちゃ 副詞識別 自動獲得:テキスト, 代表表記:ごっちゃ/ごっちゃ
見出し:な, 読み:な, 原形:だ, 品詞:判定詞, 品詞細分類:*, 活用型:判定詞, 活用形:ダ列基本連体形, 意味情報:NIL, 代表表記:
見出し:の, 読み:の, 原形:のだ, 品詞:助動詞, 品詞細分類:*, 活用型:ナ形容詞, 活用形:語幹, 意味情報:NIL, 代表表記:
見出し:は, 読み:は, 原形:は, 品詞:助詞, 品詞細分類:副助詞, 活用型:*, 活用形:*, 意味情報:NIL, 代表表記:
見出し:よみ, 読み:よみ, 原形:よむ, 品詞:動詞, 品詞細分類:*, 活用型:子音動詞マ行, 活用形:基本連用形, 意味情報:代表表記:詠む/よむ ドメイン:文化・芸術, 代表表記:詠む/よむ
見出し:にくい, 読み:にくい, 原形:にくい, 品詞:接尾辞, 品詞細分類:形容詞性述語接尾辞, 活用型:イ形容詞アウオ段, 活用形:基本形, 意味情報:代表表記:にくい/にくい 反義:接尾辞-形容詞性述語接尾辞:やすい/やすい, 代表表記:にくい/にくい

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment