Posted at

cygwinからanacondaのpythonコマンドをたたく

More than 1 year has passed since last update.

windowsでanaconda入れると、CUIはAnaconda Prompt(実質コマンドプロンプト)になるじゃないですか。

そんなの嫌だ!Linuxのコマンド使いたい、cygwin使いたい!って人向け(主に自分)の需要の少なそうな覚書です。


1. anacondaにパスを通す

cygwinの.bash_profileを編集する。

こういう感じ


.bash_profile

ANA_PATH=/cygdrive/c/Anaconda3

export PATH=\$ANA_PATH:\$ANA_PATH/Library/bin:\$ANA_PATH/Scripts:$PATH

これで

$ which python

/cygdrive/e/OSS/Anaconda3/python

anacondaのpythonにパスが通った。

が、これでpythonを叩くと応答が返ってこない…

$ python

cygwinのterminalであるminttyっていうexeがネイティブのpython以外のpythonをたたくと固まるという既知のバグなんだそうです。


2. winpty入れる

なので、mintty.exeの代わりにwinpty.exeというものを入れて、cygwinのterminalをラップしてやる必要がある。

https://github.com/rprichard/winpty

からgit clone。

解凍先にcd してcygwinでmakeする。

$ git clone https://github.com/rprichard/winpty.git

$ cd winpty
$ ./configure
$ make

正常に完了すれば、winpty/buildにconsole.exe、winpty.dll、winpty-agent.exeができる

※ 予めcygwinでgit, make, gcc-g++, mingw64-x86_64-gcc-g++ などなどをインストールしておく


3 pythonコマンドをラップ

~/.bashrcを編集

winptyのインストール先が$GITだとすると


.bashrc

alias 'python'='$GIT/winpty/build/winpty.exe python'

alias 'ipython'='$GIT/winpty/build/winpty.exe ipython'

これで!anacondaのpythonをcygwinから叩けるようになりました。

$ python

Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

※参考:http://suzukiyou.hatenablog.com/entry/20151209/1449622689