suzukiyou blog

建築設計とかpythonとかその辺をとりあえずする

cygwin win64bit版を入れたり、bash+mintty+console環境を設定したりする

環境的な話

現状、こういうものを使いたいという感情がある。

  1. windows7 64bit
  2. gcc
  3. bash+mintty
  4. エディタ
  5. ipython(win64版、導入済み)
  6. sqlite3
cygwin 64bitの導入

Cygwin(64bit)とgitのインストール - Qiita
Cygwinのインストールとapt-cygのインストール - Qiita
このあたりに従って入れる。

環境変数の設定は.bash_profileを触ってもできるそうですけど、今回はwindowsシステムの方に書きました。
参考これ。
Cygwinインストール後のWindows環境変数設定 - Qiita

windowspythonが入っている場合はcygwinpythonと干渉するのでpathの書き方に注意で、以下のようにする。
Windows版とcygwin版の共存でハマる - nelnal@python - pythonグループ
ポイントとしては2点で、
pathのpython(win版)の位置をc:\cygwin/bin~~より前に書くこと。
pythonpathを設定すること
でした。

bash+mintty+ipythonの対話モードをできるようにする。

ここまでで以下の状態になる。
bash+minttyは動く。mintty上でipythonは動かない。cmd.exe上ではipythonが従来通り動く。
原因はminttyのパイプ処理がどうのこうのというあたりらしい。
MinGW の mintty で対話モード、ついでに vim 設定 | ユニマージュ
結論だけ書けば、winpty(のconsole.exe)でwindowsアプリをラップすれば良い。

winptyの導入はビルドが必要。

rprichard/winpty · GitHub
ここのzipをダウンロードしてきて、cd /hogehoge/winpty-masterして、./configureしてmakeすればよい。
なんかgccが見つからんとかなんとか言われた気がするがあんまり覚えてない。
.bashrcに

alias gcc='x86_64-w64-mingw32-gcc.exe'
alias g++='x86_64-w64-mingw32-g++.exe'

みたいなことを書いた。
最終的にwinpty-master/buildにconsole.exe、winpty.dll、winpty-agent.exeができるので、この三つを適当なところにおいて(今回は~/buildにまとめて入れた)

alias 'python'='~/build/console.exe python'
alias 'ipython'='~/build/console.exe ipython'

とする。これでipythonがmintty上で動く。