opencv-pythonはPythonで動画を扱うためのモジュールである。このモジュールを使ってlifegameを高速に描画するプログラムを以前に作った。これをwin10で実行しようとするとエラーがでた。エラーはtmpファイルにアクセスできないことから来てることが分かった。実はwin10ではユーザアカウントのユーザ名に日本語を使っていた。それでtempファイルへのpathに日本語が入ってくる。opencv-pythonは非ascii文字に対応していないことからエラーがででる。ここまでわかった。
対応策(ユーザ名を’花子’とする)
- 管理者としてコマンドプロンプトを開き、ホルダー’花子’が見えるところまで行き以下のコマンドでsymbolic linkを作る:
mklink /D hanako 花子
これで’花子’の内部のファイルに対してascii文字だけの別名’hanako’経由でアクセスできる。通常tempファイルはこの内部にある。
- opencv-pytonはtempファイルのある場所を環境変数TEMPまたはTMPに記載されているpathで探す(このpath名に日本語が入っているとエラーがででる)。そこでpath名を変更する)。
ユーザ名’花子’でログインしてコマンドプロンプトの窓を開き以下のコマンドを入力する。
C:\Users\花子>set T
TEMP=C:\Users\花子\AppData\Local\Temp
TMP=C:\Users\花子\AppData\Local\Temp
環境変数TEMP及びTMPのpathに日本語が入っていることがわかる。これを以下のコマンドで変更する。
setx TEMP C:\Users\hanako\AppData\Local\Temp
setx TMP C:\Users\hanako\AppData\Local\Temp
これで環境変数TEMPおよびTMPのpathをascii文字だけで定義できる。
この二つの処理でopencv-pythonは正常に動く。