Bluepostech

まじめなことを書きます

cygwinでpython・pip・numpy・matplotlib

cygwinwindowsでプログラム環境を作るのには強いツールと言える。apt-cyg install gccとかでコンパイラが入るので、windowネイティブのバイナリをいちいちダウンロードして実行するより楽だ。

しかし、pythonとは非常に相性が悪いらしい。pythonを入れるだけならそうではないが、描画ライブラリなどを入れるのには「too painful」らしい。

ご多分にもれず自分も非常に苦労したので、まずこうすればうまくいくという方法を書いてから、そこにいたるまでの顛末を書いておこうと思う。

1.うまくいく方法:setup.exeからインストールする

この記事にたどり着くまでに散々見てきたことかもしれないが、「CUI上でのインストールは諦めるところからはじめろ」という記事や「CUIからインストールしようとしたが結局うまくいかない」といった記事など、CUIのみで最後までうまくいったものは僕は見つけられなかった。

中には「MinGWを使え」とか「winのバイナリでインストールしろ」といった意見もあるくらいだった。しかしそれではこだわり信念に反するので、なんとかcygwin内で完結する方法でインストールしたかった。

まずはsetup.exeからpythonのパッケージを全部インストールした。「python」カテゴリをDefaultからInstallにすればよい。

次に、cygwinを管理者権限で立ち上げ、

pip install numpy matplotlib scipy

でインストールしたところ、なんとかできたようだった。最初普通に立ち上げてmatplotlibをインストールしたところ権限の問題でひっかかったようだが、なぜか問題なく使うことができた。

インストールできたかチェックするには、pythonを立ち上げ

import numpy
import scipy
import matplotlib

などとすればよい。

------------------------------------------------------------------------------------------------

2.うまくいかなかった方法

(1)pythonのインストール

これは単純に

apt-cyg install python

(2)easy_install pipのインストール

easy_installとは、python環境を整えるためのツールである。割と最近名前が変わったらしい。

apt-cyg install python-setuputils

コマンドの名前は「easy_install-2.7」とちょっと長いのでエイリアスを刺しておく。たしかこれでpipも入る。

alias easy_install="easy_install-2.7"

(3)numpyのインストール

apt-cyg install python-numpy

(4)pipのインストール

pipというのは、pythonのライブラリを管理するツールだ。

pip install matplotlib

うまくいかなかったらcmdでashから/bin/rebaseallを実行する必要があるらしい。これはcygwinのバグとのことだが、どうやってもpip installがうまくいかず、ここまでのやり方ではうまくインストールして使うまでにこぎつけることができなかった。

 

 

【bash】タイトル名に入ったスペースを置換する

タイトルに入ったスペースは、バグの原因のひとつになる。たとえば「I love you.txt」というファイルを「love letter.txt」という名前にリネームするとき、次のようにするとエラーが出る。

mv I love you.txt love letter.txt

なぜならば、単語がスペースで区切られているせいで、bashにとってはmvのあとにオペランドが5つも並んでいることになるからだ。このような場合、引用符で囲めばちゃんと動くようになる。

mv "I love you.txt" "love letter.txt"

でも、正直毎度毎度これをやるのは面倒でもあるし、CUIで処理するにはスペースを全部アンダーバーに置き換えておきたい。そこで組んだコマンドが次だ。

for file in * ; do echo $file ; mv "${file}" `echo $file | sed -e 's/ /_/g'` ; done

このコマンドを一発打てばカレントディレクトリのファイルの名前に含まれるスペースが全部アンダーバーに置き換わる。

とても見難いので、改行してスクリプト形式にすると次のようになる。

for file in * 
do
echo $file
mv "${file}" `echo $file | sed -e 's/ /_/g'`
done

doループはカレントディレクトリにあるすべてのファイルにかけてある。

バッククオートの後ろは、echoでファイルの名前を出して、パイプでsedに渡してスペースをアンダーバーに置換している。

【Zenfone Goでデレステ】プレイについて

アイドルマスターシンデレラガールズ スターライトステージ」はシンデレラガールズの世界をモチーフにした音楽ゲームで、最近SMAPの中居君がCMをしたり、基本無料とは到底思えないクオリティのMVなどで大人気のアプリである。

しかし、このデレステというアプリはきわめて重い。プレイは無料だが、端末との相性によっては動作がカクついたりタッチに反応しなかったりする。しかも2Dプレイだと2011年発売の端末でもプレイできる例や、最近のスマホでも無反応が連発する例もあり、「新しいからできる」というわけでもなく当たりはずれがある。なので機種変を考えているデレステPはネットのわずかな情報を頼りに当たり外れを探るしかなく、気をもむことになる。

そこで今回はそのわずかな情報として、格安スマホの中で、今年4月に発売されたばかりのZenfone Goでのプレイの状況をレビューしようと思う。

まず、デレステ以外の一般の操作についてはまったく問題がなかった。前のスマホが2011年モデルだったからというのもあるが、ほとんどのアプリが快適に動作した。

デレステだが、まず思ったのが、画質が非常にきれいなことだ。2D画像でもほとんど輪郭がくっきりしており、非常にきれいだった。音質については、割としゃかしゃかした印象を受けた。

プレイについて、条件は次の通りでプレイした。
・2D軽量、タップ音あり
・百均のスクリーン保護フィルム
・開発者オプションからGPUレンダリングON、HWオーバーレイOFF

感想についてだが、ノートの動きはスムーズだが、無反応が多い。しかもまったくプレイできないほどではなく、「1曲に1回くらいは無反応が起こるのでフルコンボが難しい」「10曲に1回くらい、数秒無反応になりライブに失敗することがある」とイラッとするような起こり方をする。原因はCPU、タッチスクリーンなど本体にあるのか、安い保護フィルムなのかはわからない。

3D描画について、こちらはきわめて画質もきれいでスムーズに動く。

f:id:bluepost69:20160525013119j:plain

またGoogle playの録画機能でもスムーズに録画でき、少しコマ落ちするがASUSの出しているPCLink機能で録画することもできる。ただ、これはプリインストールされているPCとつなぐ系のアプリとは別のもので、apkからインストールしなければならない。

結論として、プレイ目的で購入するのは勧められない。しかしデレステはマルチログインができるので、すでに快適にプレイできる端末を持っていてMVをきれいな画面で見たいというならよいと思う。僕もMVを見るときはZenfone Go、プレイはLavieTabという風に使い分けている。

2016.07.01 追記:画面保護フィルムを高いものに変えてみたが、それでも無反応は変わらなかった。結論として、この端末でフルコンボは難しいだろう。