windows8.1 64bit + cygwin + numpy, PIL

cygwin + pythonを入れるところまで:
windows7 (or 8.1) 64bit + cygwin + scikit learn – FULL Tablog 3 の2か3くらいまでを参照。

以下はその続き。上記はちょっと古いので、2017年時点だと色々うまくいかなかった。

1. pipをインストール
Installation — pip 10.0.0.dev0 documentation からダウンロードして適当なところ(例えばpythonのインストールディレクトリ)に置き、コマンドプロンプト (win+x a で起動する方?) にて

> python get-pip.py (--proxy="http://xxx")

2. numpyをインストール
Python Extension Packages for Windows - Christoph Gohlkeからダウンロードしてcygwinにて

python -m pip install numpy-1.13.1+mkl-cp27-cp27m-win_amd64.whl

3. PILをインストール
やはりPython Extension Packages for Windows - Christoph Gohlkeからダウンロードしてcygwinにて

$ python -m pip install Pillow-4.2.1-cp27-cp27m-win_amd64.whl (--proxy="http://xxx")

# ついでに編集距離なんかを測る用:
4. python-Levenshteinをインストール
python-Levenshtein 0.12.0 : Python Package Indexからtar.gzをダウンロードしてcygwinにて

$ tar zxvf python-Levenshtein-0.12.0.tar.gz
$ cd python-Levenshtein-0.12.0/
$ python setup.py install

error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27
とかいうエラーが出る場合には書かれている通りのURLからVCForPython27.msiをダウンロード~ダブルクリックでインストールすればおk。


matlab -rでのパス指定

m/ディレクトリにあるxxxスクリプト (っていうの?) を実行したくて

$ matlab -r m/xxx -nodisplay

とすると「予期しないMATLAB演算子です。」とか言われて腹立つあれは、

$ matlab -r "cd m; xxx"

みたいにすればいいらしい。
ただそれはそれで、以降の処理がm/基準で走るので厄介なのだけれど。
ほんとmatlabは融通が利かないと思う。

# MATLAB Central - OS/X - "unexpected MATLAB operator" when run from ...


windows7 (or 8.1) 64bit + cygwin + scikit learn

windows7 (or 8.1) 64bit 32bit + cygwin + scikit learn / FULL Tablog 2
の、ちゃんと64bitに対応させた版。
やはり対話モード?に入れないのだけど。。

こちら
馬の脳: Windows 7 64bit でPython環境構築
を参考にさせていただいた。

以降、コマンドプロンプトの起動は「管理者として」が確実?
exeの実行はそうでなくても問題なかった。

■1. cygwin 64bit版を入れる

■2. python2.7 64bitをwindowsインストーラで入れる
インストール先はcygwinで見易い場所、例えば %cygwin_path%(C:\\cygwin64とか)\\usr\\local\\Python64-27\\ とか。
ここに入れることでcygwinからは /usr/local/Python64-27/ でアクセスできる。

※2017.11.1追記
インストール時に権限に関するエラーが発生する場合、cygwin上で
/usr/$ chmod go+w local
しておく。
--- 追記ここまで ---

■3. cygwinコンソールから上記のパーミションを緩める

$ chmod -R go+w /usr/local/Python64-27/

※windows8.1にてpermission deniedが出る場合には、
cygwinを実行するショートカット (Cygwin64 Terminal) を右クリックして
「管理者として実行」で起動することでうまくいった。
これをやっておかないと、多分以降のインストールでエラー出る。たぶん。

※2017.11.1追記1 ---
windows10にて上記でパーミッション変更できない場合、windows側で権限に関する処理が必要。ほんとくそめんどいしんでほしい。

エクスプローラでPython64-27/フォルダを右クリック
~プロパティ~セキュリティタブ~詳細設定
~所有者SYSTEMの右の「変更」クリック
~「選択するオブジェクト名を入力」の欄で自分のアカウント名を入力してOK
 (名前の確認ボタンを押すとアカウント名をもし間違えていた場合にわかる)
(ここで「適用」~「OK」して一旦プロパティウィンドウを閉じて、再度開き直す)
~アクセス許可タブの「追加」(上記開き直しをしないと「追加」が選べない)
~「プリンシパルの選択」~同じく下のオブジェクト名欄に自分のアカウント名を入れてOK
~基本のアクセス許可にて「フルコントロール」を選択、
 下の「これらのアクセス許可を~~」にチェックしてOK
~「子オブジェクトのアクセス許可エントリすべてを~~」にチェックしてOK

これでPython64-27/フォルダ内を読み書きできるようになったはず。
--- 追記1ここまで ---

※2018.7.9追記2 ---
Windows10, python3.7でpipがインストールされない場合:
何回かpython-3.7.0-amd64.exeを実行すると「scripts/」フォルダができるものの、やはりpipが入らない場合、
管理者権限実行のcygwin consoleにて
$ chmod -R go+w python64-37/
$ python3 -m ensurepip
--- 追記2ここまで ---

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※ここから先は2017年時点ではうまくいかない可能性があります。
※だめな場合はこちらも参考まで:
windows8.1 64bit + cygwin + numpy, PIL – FULL Tablog 3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

■4. 64bit用のパッケージ群を以下から落とす
Python Extension Packages for Windows - Christoph Gohlke
- scikit learn [scikit-learn-0.15.2.win-amd64-py2.7.exe]
- numpy [numpy-MKL-1.9.1.win-amd64-py2.7.exe]
- scipy [scipy-0.15.0-cp27-none-win_amd64.whl]
(scipyはscikit learnにrequireされてないので、もしかして不要??)

■5. numpyを入れる
上記の [numpy-***.exe] を実行

■6. scipyを入れる (不要??)
先にwheelを入れる。
cygwinコンソールから

$ pip install wheel

その後、scipyインストール。
コマンドプロンプト (管理者; Winキー+x~Aで起動) から

> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install scipy-0.15.0-cp27-none-win_amd64.whl

ちなみにcygwinコンソールからやろうとすると

$ pip install scipy-0.15.0-cp27-none-win_amd64.whl
scipy-0.15.0-cp27-none-win_amd64.whl is not a supported wheel on this platform.
Storing debug log for failure in /home/user/.pip/pip.log

でだめ。

■7. scikit learnを入れる
上記の [scikit-learn-***.exe] を実行

■ (8. ついでにpylab)
上記からmatplotlib関連で必要なもの6つを落として
[pyparsing-2.0.3.win-amd64-py2.7.exe] は実行して、
残りはコマンドプロンプトから

> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install six-1.9.0-py2.py3-none-any.whl
> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install setuptools-11.3.1-py2.py3-none-any.whl
> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install pytz-2014.10-py2.py3-none-any.whl
> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install python_dateutil-2.4.0-py2.py3-none-any.whl
> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install matplotlib-1.4.2-cp27-none-win_amd64.whl

おわり


cygwin + tree-tagger + python

基本的にこちらを参考にさせていただいた。
TreeTaggerを使った英語の形態素解析 - よしなしごと

1. cygwinの場合は Windows version を落として
2. 適当なディレクトリに解凍して
  C:\\cygwin64\\home\\<username>\\local\\tree-tagger-3.2 とか
3. Parameter fileとして落とした english-utf8.par を lib/ に入れて
4. chunk-english.bat, tag-english.bat の set TAGDIR 部分を2.に合わせて
  C:\\cygwin64\\home\\<username>\\local\\tree-tagger-3.2 とか
5. treetaggerwrapper.py を落としてpythonインストール先の Lib/ に入れて
6. このときに l.381 を
  "tagparfile": "english.par", から
  "tagparfile": "english-utf8.par", に書き換えればおk

##
解析時に warning 出る場合は .decode() してみたり
さらに無理矢理なら .encode("cp932", "replace").decode("utf8", "replace") して変なのを消してみたり


windows7 (or 8.1) 32bit + cygwin + scikit learn

2015.1.14追記
pythonをちゃんと64bitで動かせるようにするにはこっち。
windows7 (or 8.1) 64bit + cygwin + scikit learn / FULL Tablog 2


--- !!以下はpythonが32bitでよい場合!! ---
32bitプロセスはメモリが2GBまでしか使えない?ので色々不便だった。

とりあえず動かすだけ、なので正しいかは不明。
この入れ方だと対話モード?に入れないのが困るんだけど。

■1. cygwin 64bit版を入れる

■2. python2.7 32bitをwindowsインストーラで入れる
インストール先はcygwinで見易い場所、例えば %cygwin_path%(C:\\cygwin64とか)\\usr\\local\\Python27\\ とか。
ここに入れることでcygwinからは /usr/local/Python27/ でアクセスできる。
32bitなのは、numpyとかが32bitなのでそっちの方が無難だろう、という記述をどこかで見かけたからw

■3. cygwinコンソールから上記のパーミションを緩める

$ chmod -R go+w /usr/local/Python27/

※windows8.1にてpermission deniedが出る場合には、
cygwinを実行するショートカット (Cygwin64 Terminal) を右クリックして
「管理者として実行」で起動することでうまくいった。

■4. numpy, scipyをwindowsインストーラから入れる
上記3.をやっていればエラーが出ないはず

■5. pipを入れる
https://pip.pypa.io/en/latest/installing.html から
get-pip.pyを落としてきて、コマンドプロンプトから

> python get-pip.py

※windows8.1にて、
Exception:
Traceback (most recent call last):
File "c:\\users\\(xxx)\\appdata\\local\\temp\\(tmp)\\pip.zip\\pip\\basecommand.py", line 122, in main
status = self.run(options, args)
云々なエラーの場合には、先に

> python -m pip install -U setuptools

するとうまくいった。

■6. pipでscikit learnを入れる
コマンドプロンプトから

> python -m pip install -U scikit-learn

おわり


MeCab JavaバインディングをWindowsで

めちゃくちゃ苦労したのでメモ。
形としては,Windows(Cygwin)ではライブラリとしてso形式のものが使えない(らしい)ので,dllを作成して動かすことに。
(Linux版をcygwinで動かそうとするとこれで引っかかる。)
但し本体のconfigureと辞書の生成作業でCygwinも必要。
ちなみによく分からずに進めたので間違いだらけかも。
"MeCab JavaバインディングをWindowsで" の続きを読む


JDBC文字コードエラー

PostgreSQLからJDBC経由でデータを取得する際のエラー

org.postgresql.util.PSQLException: ERROR: character 0x8fa2b7 of encoding "EUC_JP" has no equivalent in "UNICODE"

は,JDBCのバージョンアップで「~」が扱えなくなったのが原因らしい。

by PostgreSQL 移植で 『~』 がJDBC経由で扱えなくなった / ギジュツメモ 様

というわけでJDBCのバージョンを下げたらエラーが出なくなった。
JDBC Driver Download
試してみたところ,7.2 = OK,7.3 = ダメ だったので,
とりあえず7.2を入れておけばよさげ。


phpMyAdminメモ

インストール時の下記エラー対策を,都合により某所からコピペ

#2002 - サーバが応答しません
(あるいはローカルの MySQL サーバのソケットが正しく設定されていません)

が出る場合は
/var/www/phpMyAdmin/にて
config.sample.inc.phpをconfig.inc.phpとしてコピーした後,

$cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
$cfg['Servers'][$i]['connect_type'] = 'socket';

の2行を付け足す。
これだけ。


Explore2fsとExt2Fsdメモ

ともにWindowsからLinuxパーティション(物理的に別のHDDでも可)を
参照するソフト.
Windows XP (NTFS) & Fedora Core 2 (ex2/ex3?)で動作確認.

Explore2fsはインストール要らずで気軽に操作できるのがGood.
ただファイルコピーの際はデータを全部メモリに格納しようとする?のか,
4GB弱の大容量ファイルをコピーしようとしたらメモリ不足で無理でした.

Ext2Fsdは要インストール作業(何もつまずく点はないけど).
Linuxパーティションをそのまま新たなドライブとして認識するようになるため,
Windowsアプリから普通に参照可能で非常に快適.
4GBのファイルのコピーも3分で済みました.
大掛かりな作業をするならこっちのがよさげ.
"Explore2fsとExt2Fsdメモ" の続きを読む