windows8.1 64bit + cygwin + mecab + python

* 2:mecab-python 自然言語処理@Python-Win8 : 三日坊主のアルバイト
を参考にさせていただいた。

* python + cygwinのインストール回りはこっちで:
windows7 (or 8.1) 64bit + cygwin + scikit learn / FULL Tablog 2
---

1. windows用mecab [mecab-0.996.exe] をインストール
Downloads - mecab - Japanese morphological analyzer - Google Project Hosting
半角スペースのないパスに入れておくと確実かも: C:\programs\MeCab\ とか

2. mecab-python [mecab-python-0.996.tar.gz] をダウンロード~解凍
cygwinから見易い場所とか適当に: C:\cygwin64\home\xxx\tmp\mecab-python-0.996 とか

3. 上記にある [setup.py] を修正
以下の4箇所

#version = cmd1("mecab-config --version"),
version = "0.996"

#include_dirs=cmd2("mecab-config --inc-dir"),
include_dirs=[r"C:\programs\MeCab\sdk"],

#library_dirs=cmd2("mecab-config --libs-only-L"),
library_dirs=[r"C:\programs\MeCab\sdk"],

#libraries=cmd2("mecab-config --libs-only-l"))
libraries=["libmecab"])

4. visual studioを入れる
ここから [Express 2013 with Update 4 for Windows Desktop] をダウンロード・インストール。
これが一番かったるい。。
HDDを6GBも食ってげんなり。インストールにも30分くらいかかりおった。
他のバージョンでいいかは不明。
但し、最初に Visual Studio 2010 Express を試したんだけど、この後6.の2行目、64bit用の処理で使うコマンドが見つからなかったので、2013に入れ直した。

5. [libmecab.dll] と [libmecab.lib] を頂戴する
(この手順はこれしかないのかな。。)
こちらの最下部にある [mecab-python-0.993.win-build.zip ] をダウンロードさせてもらい、中にある上記2ファイルを、
C:\cygwin64\home\xxx\tmp\mecab-python-0.996
に入れる。

これをしないと
build\lib.win-amd64-2.7\_MeCab.pyd : fatal error LNK1120: 11 件の未解決の外部参照
error: command 'C:\\(yyy)\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1120

6. コマンドプロンプトにて以下を実行

> SET VS90COMNTOOLS=%VS120COMNTOOLS%
> call C:\(VisualStudio12.0ディレクトリ)\VC\bin\x86_amd64\vcvarsx86_amd64.bat X64
> C:\cygwin64\usr\local\Python64-27\python.exe setup.py build
> C:\cygwin64\usr\local\Python64-27\python.exe setup.py install

- 1行目は error: Unable to find vcvarsall.bat 対策。
VSのバージョンによっては微妙に違うので注意: python - error: Unable to find vcvarsall.bat - Stack Overflow
- 2行目は ValueError: [u'path'] 対策。

7. [libmecab.dll] を (pythonディレクトリ)\Lib\site-packages\ にコピー
これをしないと ImportError: DLL load failed
こちら より


なおったああああああああああああ

xreaの各種バージョンアップメンテナンス以来つながらなくなっていたけど、ようやく直った。
以下はメモ。

* CGI
s56他はどうも海外からperl cgiにアクセスできなくなってた。(設定ミス??)
これはしばらくしたら運営側が直してくれたみたい。
またつながらなくされてしまった。一部鯖だけつながらないのは何か理由があるんだろうか。。

* nucleus
ほんと苦労した。。
やったことは実は簡単で
- mysql周り
- nucleus周り
を少し弄るだけ。

1. mysql周り
1.1 mysql DBの作成
今回のメンテで消えていたので、コントロールパネルから作成。

1.2 phpMyAdminインストール
これもコントロールパネルから。

1.3 ダンプファイルの文字コード変換~アップロード
メンテ時に自動でバックアップしてくれたdumpファイルをダウンロードし、
今までeucでやっていたために中身がeucになっていたのを、テキストエディタ (xyzzy) でutf8で保存。
(予め C-u M-x revert-buffer euc-jp で可読にしておく必要?)

で、これをphpMyAdminでインポート。
通常なら問題ないはずなんだけど、スパムコメントの変な文字列が悪さをしてインポートに
ミスったので、当該のコメントを適当な文字列 (xxx) とかに書き換えたら上手くいった。
当該コメントの探し方は、phpMyAdminで、どこまでインポートが成功しているかを見れば、
その次だと分かった。

2. nucleus周り
2.1 config.php更新
これが一番罠だった。。
昔インストールした後に、DB側のパスワードを変えて以降も、このスクリプト中のパスワードは
変えなくてもずっと運用できていたので、ここを変える必要があることに気付かなかった。
おかげでひたすら「Could not connect to MySQL database」だった。

2.2 バージョンアップ
これは必須じゃなかった気もするんだけど。
ここにある通りに従ったら簡単だった。
但し、ここに書かれていないけどaction.php(他、同ディレクトリにあるファイルもかな?)も上書きしないと、
記事投稿時にすぐにタイムアウトして「チケットが不正、もしくは期限切れです」というエラーが出る。
--> ※最近またこのエラー出るようになってしまった (2015/7/13)

2.3 multiple categoriesのアップデート
mysqlのアップデートに合わせて?これをしないとカテゴリアーカイブでエラー。
mySQL error with query SELECT i.inumber as itemid, i.ititle as title ...
ここにある通り、
NP_MultipleCategories を0.38j (だったか) から 0.5.1j にすることで解決。
(手順は、管理画面でアンインストール~FTPで当該のプラグインを削除~新しいのをアップロード
~管理画面でインストール、で行った)
但し、このポストにある修正をしないと、管理画面からのインストール時にエラーが出る。

たぶんこんなもん。

##
こまったときはとりあえず
nucleus/libs/globalfunctions.php の $CONF['debug'] を「1」にしてみる!