Python食わず嫌いな人間が環境を作ってみた [Miniconda + PyCharm]
前書き
C++畑で育った人間として、Pythonはとても気持ち悪く思える。
動的型付けなんて黒魔術みたいだ/バイナリファイルを作りたい/etc.
しかし、『使えない』のと『使わない』のとは全く違う。
最低限は試してみようと、環境を構築してみることにした。
なお、使用OSはWindows10の64bit機。
導入の方針
次のサイトが非常に参考になる。
他にもいろいろなサイトを巡ってみて、次のような方針を決めた。
- ディストリビューションとしてMinicondaを使用
- 基本的に仮想環境上でPythonの実行を行う
- 諸般の事情により、2.7と3.5、3.6を同居させたい
- 環境それぞれに必要なパッケージを導入するつもり
- pipやwheelにはできる限り頼らない
- IDEとしてはJetBrains社のPyCharmを用いる
こんな感じ。さっそく始める。
Minicondaのインストール
最新バージョンを落とせば古いPythonの環境も作れる。
特に理由がなければ、一番新しいバージョンをダウンロードするのがよい。
インストールも、嫌らしいデフォルト設定などないのでポチポチでOK。
インストールすると、スタートメニューにプロンプトが追加されている筈だ。
素晴らしいMiniconda。非常にシンプルな構成である。
プロンプトを開き、現在インストールされているパッケージを見てみる。
conda list -n root
-n rootは不要だが、ルート設定であるということを明示するために入れてみた。
この結果を見ても、NumPyなどがプリインストールされていないことがわかる。
仮想環境の構築
さて、仮想環境の構築とカスタマイズをしてみよう。
仮想環境を作るためには、プロンプトに次のように打ち込めばよい。
conda create -n [環境名] python=[バージョン]
実際の画面は次のようである。
『次のパッケージを入れるけど、いい?』と聞いてくれたり、
具体的な使い方を指南してくれるあたり、非常に親切である。(若干感動した)
ただ、案外時間がかかる印象はあった。
Pythonインタプリタ本体は、赤線部のディレクトリに入っている。
後でPyCharmのセッティングをするときに使うので、確認しておこう。
パッケージのインストール
仮想環境に必要なパッケージをインストールしていこう。
ここでは、プログラマに(おそらく)必須であろう、NumPyとSciPyを入れてみる。
他のページを見てみると、-nオプションで環境指定してインストール*1している。
しかしここでは、環境をactivateしてからインストールする方法を取りたい。
なぜか?―私がしばしばオプションを付け忘れるからである!(仮想環境作った意味)
具体的には、次のように命令を打ち込む。
activate [環境名]
conda install numpy scipy
パッケージは同時に複数インストールでき、バージョンも指定できる。
実際の画面は次のようである。
プロンプトの左側に、activateな環境が書かれている。つくづく親切である。
Anacondaプロンプトを使った操作は、基本の基本は以上でおしまい。
ググれば他にもたくさん命令が出てくるので、見てみるとよいだろう。
なお、公式のチートシートが公開されている。
PyCharmを使ってみる
Intellij IDEAを使ってからJetBrainsに惚れているので、PyCharmを採用した。
インストールにあたり、いじったオプションは一か所だけ。
今までVSCodeで見ていたpyファイルを、PyCharmに結び付けることにした。
インストール後、とりあえず起動し、Look and Feelを好みに合わせる。
ここら辺はこだわりがないのならデフォルトで一切問題がない。
プロジェクトをつくる際、インタプリタを指定する必要がある。
Interpreter右端にある歯車のボタン→Add Localで、環境を指定する。
私の環境の場合、次を指定した。
目当てのインタプリタが見つからない場合、次のようにすればわかる。
さりげなくAnacondaプロンプト再登場である。
なお、おそらくそのディレクトリにはpythonw.exeも存在する。
直下のページが検討しているとおり、あまり気にしなくてよいようだ。
プロジェクトを作れたら、次のコードを打ち込んでみる。
実行すると、リストが出力されるはずだ。
なお、File→Settings→Project: [name]→Project Interpreterを見ると、
いま使われているインタプリタと、導入できるパッケージが見られる。
また、同じ画面からインタプリタの変更もできる。
試しにPython2系に変更してみると、エラーが出てくるだろう。
Anacondaだけで対応できないとき
Anacondaは便利だが、入手できないパッケージもしばしばあるらしい。
以下のページに、その解決法が書いてあった。
- Anaconda Cloudを利用する方法
- PyPIを利用する方法
ど素人なので今見ても全然わからないが、そのうちお世話になりそう。
後書き
冒頭で述べたようにPythonの気味の悪さのようなものを感じている。
また、以前にpipでハマったこともあり、苦手意識はかなりあった。
しかし、Anacondaを使いこなせれば、ストレスも減るのかと思う。
実は、PythonはTensorFlowを利用するために導入してみた。
*1:conda install -n [環境名] [パッケージ名]