チラシの裏は意外と白くない

チラシの裏にも書けないような毎日

Windowsの開発環境の話(MSYS2とPythonのインストール)

完全に備忘録。

 

会社のパソコンが変わって開発環境を作り直したので、忘れないように。

前はCygwinで頑張って環境を作っていたけど、どうもMSYSが最近のトレンド(といっても一昔前か?今はWSL?)っぽいのでMSYSで試行錯誤した話。

WSLは会社のセキュリティポリシー的につかえない。つかえない。

 

MSYSのダウンロード

www.msys2.org

から64bit用のものを持ってきてインストール。特筆することはなし

 

pacman使えるようにするまで

msys2ではpacmanというパッケージ管理ソフトを使う。普通ならそのまま行けるのだろうが、社畜環境ではプロキシの設定をしなといけない。

msys2インストールするとターミナルが立ち上がるが、いったん閉じて.bashrcに以下の環境変数を設定:

export http_proxy="http://xxxxxx:port"

export https_proxy="https://xxxxxx:port"

 つづいてmsys64/etc/pacman.confの以下コメントアウトをはずす。どちらかでよい。

#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u

これでpacmanもOK。

 

パッケージの更新

msys2を立ち上げる。mingwではなくmsys2を。

pacman -Syu

pacman -Sy

pacman -Su

 pacman自身の更新とインストール済みパッケージの更新とあとなにか。おまじない。

 

次にGCCとかを入れる。

pacman -S base-devel mingw-w64-x86_64-toolchain

base-develは全部(default)、mingw-w64-x86_64-toolchainはCとC++に関係するものだけを入れた。この辺は先人の言うとおりに。

cad.lolipop.jp

 

この状態でmingw64を立ち上げて、gccが動くかチェック。OK

$ gcc -v
Using built-in specs.
COLLECT_GCC=C:\msys64\mingw64\bin\gcc.exe
COLLECT_LTO_WRAPPER=C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-8.3.0/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --enable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=ada,c,lto,c++,objc,obj-c++,fortran --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts=yes --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion='Rev2, Built by MSYS2 project' --with-bugurl=https://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld
Thread model: posix
gcc version 8.3.0 (Rev2, Built by MSYS2 project)

 

Pythonのインストール

ここからが本題といっても過言ではない。Pythonを使いたい。cygwinでもだましだまし使っていたけれど、今回これを一新したい。正直なところ、以下は現時点で世やそうなやり方。msys2のpythonでさんざん詰まったが、これでいけるか?

概要としてはmsysのpythonではなく、公式のpythonをCドライブ以下に入れて、そこにパスを通してやる。

 

www.python.org

ここから64bit用Pythonをダウンロードしてきてインストール。最初デフォルトでやったら32bit用がダウンロードされてしまった。

 

で、パスを通す。インストールの時に環境変数に追加を有効にしておけば、Windows環境変数リストからインストール先がわかるので、それをそのまま.bashrcに書いてやる。ただし、階層区切りは¥ではなく/で。

 

export PATH="/c/XXXXXX/Python/Python37/:/c/XXXXX/Python/Python37/Scripts
:$PATH"

 PATHの先頭に追加。そうしないと、msys以下のpythonを見に行ってしまう。

 

動作確認。

$ python -V
Python 3.7.3

 パスはOK。

$ python -V

インタプリタ起動しない。なぜ。

qiita.com

またも偉大な先人の知恵を借りる。msysからwindowsにインストールされた対話型アプリを動かそうとするとうまくいかないらしくて、winptyを入れれば解決するそう。pacmanでwinptyをいれて

pacman -S winpty

 .bashrcにエイリアスを追加。

pacman -S winpty

 これでpythonインタプリタもうごくようになった。

 

pip

pipが入っているか確認。

$python -m pip -V

 はいっているので、numpyをいれてみる。

python -m pip install numpy

問題なく入った。msys2のpython環境だとnumpyが入らなかったり苦戦したが、そのほかとりあえず仕事で必要なパッケージも入ったので、とりあえずmsys2への移行と立ち上げは完了?