Mac MojaveでPython環境構築しopenCVとJupyter notebookをインストール

MacをOS Mojave(v10.14.4)にクリーンインストールしました。

実はPython環境についていろいろ悩んでいたので、下記のサイトを参考にHomebrewからPyenvをインストール。そして、Python 3.6.6を入れようとしたところトラブルがおこりました。

【2019年版】Pythonインストール・Mac編【長く安全に使える方法】|投資エンジニア

今回、このエラーを他の方の記事を参考に解決できたのと、ついでにopenCVとjupyter notebook、matplotlibまでいれたのでその記録です。

目次

PyenvからPython 3.6.6を入れようとしてエラーが発生

発生したエラーは

BUILD FAILED (OS X 10.14.4 using python-build 20180424)

これですが、ログを見てみると

zipimport.ZipImportError: can’t decompress data; zlib not available
make: *** [install] Error 1

このzlib not availableが問題のようです。

pyenv install 3.6.6 でエラーが発生する。 – digitalnauts – Medium

まずは上記サイトに表記されていた

CFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix openssl)/lib" \
PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2 \
pyenv install -v 3.6.6

こちらを試してみましたが、解決せず。

pyenv installで「zlib not available」エラーが発生したときの対策 – Reasonable Code

上記サイトで書かれていた

$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

こちらにて解決できました。

Naka2   bash  140×38 2019 05 03 22 36 20

venv(仮想環境の作成)

【2019年版】Pythonインストール・Mac編【長く安全に使える方法】|投資エンジニア

再び、投資エンジニアさんの記事のとおり、venvを使って仮想環境を構築します。

/Users/naka2/python_env

このように、python_envというディレクトリを作成して、このディレクトリに移動。

$ python -m venv py3env

これで仮想環境構築完了です。

仮想環境の有効化


$ source py3env/bin/activate

これで環境を有効化


$ deactivate

これで無効化

openCVをインストール

まずは、

/Users/naka2/python_env

こちらに移動。

次に、

~/python_env $ pip list -o
Package    Version Latest Type 
---------- ------- ------ -----
pip        10.0.1  19.1   wheel
setuptools 39.0.1  41.0.1 wheel
You are using pip version 10.0.1, however version 19.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

パッケージを確認して、

~/python_env $ pip install --upgrade pip

pipをupgradeします。

~/python_env $ pip install -U setuptools

Setuptoolsもインストール(upgrade)しました。

~/python_env $ pip list
Package    Version
---------- -------
pip        19.1   
setuptools 41.0.1 

最新になったので、次はopenCVをいれます。

~/python_env $ pip install opencv-python

これで、openCVが入った様子。

~/python_env $ pip list
Package       Version 
------------- --------
numpy         1.16.3  
opencv-python 4.1.0.25
pip           19.1    
setuptools    41.0.1  

はいりました。

あれ、そういえば

~/python_env $ source py3env/bin/activate

これをしてなかった。

(py3env) ~/python_env $ pip list
Package    Version
---------- -------
pip        10.0.1 
setuptools 39.0.1 
You are using pip version 10.0.1, however version 19.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

あ、これをしないと何もupgradeされてません。

(py3env) ~/python_env $ pip install --upgrade pip

こうしてから

(py3env) ~/python_env $ pip list
Package    Version
---------- -------
pip        19.1   
setuptools 39.0.1 

pipはupgradeされました。

(py3env) ~/python_env $ pip install opencv-python

openCVを再度インストール

(py3env) ~/python_env $ pip list
Package       Version 
------------- --------
numpy         1.16.3  
opencv-python 4.1.0.25
pip           19.1    
setuptools    39.0.1  

無事にopenCVとnumpyがはいりました。

jupyter notebookもインストール

jupyter notebookはどうかというと

(py3env) ~/python_env $ jupyter notebook
-bash: jupyter: command not found

はいってませんね。

(py3env) ~/python_env $ pip install jupyter

これでインストール

Pip listで確認

(py3env) ~/python_env $ pip list
Package            Version 
------------------ --------
appnope            0.1.0   
attrs              19.1.0  
backcall           0.1.0   
bleach             3.1.0   
decorator          4.4.0   
defusedxml         0.6.0   
entrypoints        0.3     
ipykernel          5.1.0   
ipython            7.5.0   
ipython-genutils   0.2.0   
ipywidgets         7.4.2   
jedi               0.13.3  
Jinja2             2.10.1  
jsonschema         3.0.1   
jupyter            1.0.0   
jupyter-client     5.2.4   
jupyter-console    6.0.0   
jupyter-core       4.4.0   
MarkupSafe         1.1.1   
mistune            0.8.4   
nbconvert          5.5.0   
nbformat           4.4.0   
notebook           5.7.8   
numpy              1.16.3  
opencv-python      4.1.0.25
pandocfilters      1.4.2   
parso              0.4.0   
pexpect            4.7.0   
pickleshare        0.7.5   
pip                19.1    
prometheus-client  0.6.0   
prompt-toolkit     2.0.9   
ptyprocess         0.6.0   
Pygments           2.3.1   
pyrsistent         0.15.1  
python-dateutil    2.8.0   
pyzmq              18.0.1  
qtconsole          4.4.4   
Send2Trash         1.5.0   
setuptools         39.0.1  
six                1.12.0  
terminado          0.8.2   
testpath           0.4.2   
tornado            6.0.2   
traitlets          4.3.2   
wcwidth            0.1.7   
webencodings       0.5.1   
widgetsnbextension 3.4.2   

Jupyter notebookをいれると、他にも多くのライブラリがインストールされるようです。

先程py3env環境でupgradeし忘れたsetuptoolsもやときましょう。

(py3env) ~/python_env $  pip install -U setuptools

これでupgradeされました。

(py3env) ~/python_env $ jupyter notebook

Jupyter notebookを起動します。

Home 2019 05 03 23 12 27

無事にjupyter notebookが起動しました。

Untitled1 2019 05 03 23 13 00

New > python3でひらきました。

Untitled1 2019 05 03 23 13 45

無事にopenCVも使えそうです。

matplotlibもインストール

よく使うmatplotlibもいれておきましょう。

(py3env) ~/python_env $ pip install matplotlib

これで大丈夫かな?

とりあえず、エラーを吐かずにはいったようなので、jupyter notebookを起動して確認。

Untitled 2019 05 03 23 19 31

お!いけましたね!

まとめ

現在、Udemyの下記の講座でopenCVを勉強中です。

【Pythonで学ぶ】OpenCVでの画像処理入門

最初はMacでやろうとしたのですがうまくいかず、マシンをWindows10に変えたところ、環境構築でのトラブルはなく、ようやくPythonと画像処理にもなれてきました。

なので、”Tetsuya T”さんの上記講座は、openCVやPythonを使って画像をなにかやりたい!とおもっている方には、すっごくおすすめの講座です。

引き続き、openCVはWin10マシンで学習していきますが、だいぶ、Pythonの環境の作り方もわかりはじめてきたので、MacでもPythonが動かせるようにしていきたいと思います。

そして、ゆくゆくはJetson nano(Ubuntu)でopenCVをやる予定です。