ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【python/OpenCV】MacOSにpythonとOpenCVの環境を構築する

 pythonOpenCV使ってみるかー、と思い立って環境構築しようとしたのですが、自分が使っているMacpythonの環境がよくわからなくなってしまっていたので、一度まっさらにしてから入れ直すということをやりました。

 色々と戸惑ってしまった部分も多かったので備忘録として残そうと思った次第です。


1:HomeBrewをインストールする
 HomeBrewをインストールしていない場合はHomeBrewをインストールします。

 ターミナルを立ち上げて以下のコマンドを実行すればインストールされます。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


2:pyenvをインストールする
 pyenvは使用するpythonのバージョンを切り替えたり管理したりするためのものです。

 HomeBrewをインストールできたら、以下のコマンドを実行してpyenvをインストールします。

$ brew install pyenv

 この時に以下のような権限エラーが出る場合があります。(自分の場合は出ました)

$ brew install pyenv

Updating Homebrew...
Error: The following directories are not writable by your user:
/usr/local/share/man/man5
/usr/local/share/man/man7

You should change the ownership of these directories to your user.
  sudo chown -R $(whoami) /usr/local/share/man/man5 /usr/local/share/man/man7

 このようなエラーが出た場合はエラーの記述にある通り以下のコマンドを実行して権限を変更します。

$ sudo chown -R [ユーザ名] /usr/local/share/man/man5 /usr/local/share/man/man7

 ユーザ名のところに権限を与えたい名前を入れて実行すると権限を変更でき、その後に再度「brew install pyenv」コマンドを実行するとエラーなく実行することができます。


3:インストールできる一覧を確認する
 以下のコマンドを実行するとインストールできる一覧が表示されます。

$ pyenv install --list

 何も書かれていない「3.7.0」などがpythonのバージョンです。他にも「anaconda3-5.2.0」などanacondaも選択できます。


4:バージョンを指定してpythonをインストールする
 一覧の中にあるものからインストールしたいものを選択してインストールします。(基本的には一番最新のバージョンで良いかと思います)

 以下のコマンドでインストールできます。

$ pyenv install [バージョン番号]

 python3.7.0をインストールしたい場合は以下のように記述します。

$ pyenv install 3.7.0


5:pythonのバージョンを切り替える
 pythonをインストールできたら、以下のコマンドを実行してインストールされている一覧を確認します。

$ pyenv versions

 これを実行すると以下のようにインストールされている一覧と現在選択中のバージョンが表示されます。
f:id:rikoubou:20181029163649p:plain

「*」のマークがついているのが、現在選択されているバージョンです。

 pythonのバージョンを切り替えるには以下のコマンドを実行します。

$ pyenv global [バージョン番号]

 python 3.7.0に切り替えたい場合は以下のようにします。

$ pyenv global 3.7.0

 このコマンドを実行した後にもう一度「pyenv versions」を実行すると、以下のように使用するpythonが切り替わります。
f:id:rikoubou:20181029164059p:plain

 バージョンが切り替わったかの確認として以下のコマンドを実行します。

$ python -V

 すると以下のようにpythonのバージョンを確認できます。
f:id:rikoubou:20181029164146p:plain


6:環境変数の設定
 以下のコマンドで「.bash_profile」をviエディタを開きます。

$ vi ~/.bash_profile

「i」キーを押して「insertモード」に切り替えてから、以下の一行をコピペして追記します。

export PATH="$HOME/.pyenv/shims:$PATH"

 追記が終了したら「ESC」キーを押して「コマンドモード」に切り替えてから、以下のコマンドを入力して上書き保存します。

:wq

 ファイルの上書き保存が終了したら、以下のコマンドを実行してファイルを再読み込みします。

$ source ~/.bash_profile


7:pipを使ってOpenCVをインストールする
 次にOpenCVをインストールします。pyenvを使ってpythonをインストールするとpipというのも入っているので、pipを使ってOpenCVを入れます。

 OpenCVを入れるには以下のコマンドを実行するだけです。

$ pip install opencv-python

 また商用には非推奨(特許関連のものも含まれているらしい)ですが、以下のコマンドを実行すると通常のOpenCVよりもより機能が含まれているものをインストールできます。

$ pip install opencv-contrib-python

 上記の2つのコマンドは競合してしまうようなので、どちらか一方をインストールした後に変更したい場合は以下のように一度アンインストールコマンドを実行してから入れ直す必要があります。

$ pip uninstall opencv-python
$ pip uninstall opencv-contrib-python


8:pythonOpenCVが使えるかの確認
 OpenCVのインストールができたら、pythonからOpenCVを使えるかの確認をします。

 ターミナルで「python」と入力してpythonを立ち上げて「import cv2」と入力します。これでエラーが出なければ、OpenCVを使えるようになっています。
f:id:rikoubou:20181029165808p:plain

 確認できたら「Ctrl+D」キーでpythonを終了させます。
 

 以上がMacOSpythonのインストールとpythonOpenCVを使えるようにするまでの手順です。

 ネットで探すと色々方法があって戸惑いましたが、一応上記のやり方でできました。
 これで画像処理とかをやっていきたいですね。


・参考資料