macOS10.8にPython3, opencv3, wxPython4, PyInstaller3 をインストール
10.8で環境構築しなくてはいけなくなったので、作業メモ。 Parallelsに10.8を新規インストールした直後の状態で作業してます。
ホームディレクトリは、/Users/yukioです
■ CommandLineToolsとXcodeのインストール
command_line_tools_for_osx_mountain_lion_april_2014.dmg
xcode_5.1.1.dmg
をAppleから取得してインストール
■ homebrew のインストール
> ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
・確認
> brew doctor
古いOSだから、これもやっとけと言われるので実行
> brew install curl
・バージョンの確認
> brew -v
次のメッセージが出たが、何もしない
For compilers to find this software you may need to set:
LDFLAGS: -L/usr/local/opt/curl/lib
CPPFLAGS: -I/usr/local/opt/curl/include
For pkg-config to find this software you may need to set:
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig
■ python3.4.3のインストール
・pyenvをインストール
> brew install pyenv
・pyenvにパスを通す
> echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
> echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
> echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
・3.4.3をインストール(PyInstallerで使うので--enable-frameworkをつける)
> env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.4.3
インストール終了後、リハッシュしてグローバルに設定する
> pyenv rehash
> pyenv global 3.4.3
・確認
> which python
/Users/yukio/.pyenv/shims/python
> python -V
Python 3.4.3
■ 古いので、新しくする
> pip install --upgrade pip
> pip install --upgrade setuptools
■ wxPython4のインストール
> pip install https://pypi.python.org/packages/8b/a1/b1715ef2db427c78a990782c62aae03353da38604d8e7eeb7c61cf27a5a4/wxPython-4.0.0a3-cp34-cp34m-macosx_10_6_intel.whl#md5=ec07ac30a395dc5e25da532ade375223
下記が出て終了
>>Successfully installed six-1.10.0 wxPython-4.0.0a3
・確認
> python
>>> import wx
>>>
■ OpenCV3のインストール
・関連モジュール
> pip install numpy
> brew install cmake
途中Javaのインストールダイアログがでるので、インストール。
> brew install jpeg libpng libtiff openexr
> brew install eigen tbb
次のメッセージが出た。
'''
Python modules have been installed and Homebrew's site-packages is not
in your Python sys.path, so you will not be able to import the modules
this formula installed. If you plan to develop with these modules,
please run:
mkdir -p /Users/yukio/Library/Python/3.4/lib/python/site-packages
echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/yukio/Library/Python/3.4/lib/python/site-packages/homebrew.pth
'''
よって、これに従って、下記を実行
> mkdir -p /Users/yukio/Library/Python/3.4/lib/python/site-packages
> echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/yukio/Library/Python/3.4/lib/python/site-packages/homebrew.pth
・OpenCVダウンロード(3.2を使用する)
・wgetのインストール(この方法じゃなくても、gitなどで3.2が取得できればOK)
> cd ~
> brew install wget
時間がかかった。
・ダウンロード
> wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip
> wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip
それぞれ解凍し、opencv、opencv_contribの名前にして、ホームに配置
・buildディレクトリの作成
> cd ~/opencv
> mkdir build
> cd build
・Python3.4のライブラリ、インクルード、エグゼのパスを確認する
/Users/yukio/.pyenv/versions/3.4.3/Python.framework/Versions/3.4/lib/python3.4/libpython3.4.dylib
/Users/yukio/.pyenv/versions/3.4.3/Python.framework/Versions/3.4/include/python3.4m
/Users/yukio/.pyenv/versions/3.4.3/Python.framework/Versions/3.4/bin/python3.4
・brewで出たメッセージがきになるので、やっておく。
> export CPPFLAGS=-I/usr/local/opt/curl/include
> export LDFLAGS=-L/usr/local/opt/curl/lib
> export PKG_CONFIG_PATH=/usr/local/opt/curl/lib/pkgconfig
・ビルドする
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D PYTHON_LIBRARY=/Users/yukio/.pyenv/versions/3.4.3/Python.framework/Versions/3.4/lib/python3.4/libpython3.4.dylib \
-D PYTHON_INCLUDE_DIR=/Users/yukio/.pyenv/versions/3.4.3/Python.framework/Versions/3.4/include/python3.4m \
-D PYTHON_EXECUTABLE=/Users/yukio/.pyenv/versions/3.4.3/Python.framework/Versions/3.4/bin/python3.4 \
-D PYTHON_PACKAGES_PATH=/Users/yukio/.pyenv/versions/3.4.3/lib/python3.4/site-packages \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_FFMPEG=OFF \
-D BUILD_opencv_java=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF ..
・こんなのが帰ってきたので、OKでしょう。
-- Python 2:
-- Interpreter: NO
--
-- Python 3:
-- Interpreter: /Users/yukio/.pyenv/shims/python3.4 (ver 3.4.3)
-- Libraries: /Users/yukio/.pyenv/versions/3.4.3/Python.framework/Versions/3.4/lib/python3.4/libpython3.4.dylib (ver 3.4.3)
-- numpy: /Users/yukio/.pyenv/versions/3.4.3/Python.framework/Versions/3.4/lib/python3.4/site-packages/numpy/core/include (ver 1.13.1)
-- packages path: lib/python3.4/site-packages
--
-- Python (for build): /Users/yukio/.pyenv/shims/python3.4
--
・メイク
> make -j4
・エラー
ここからが、大変だった(十数回やり直してます)。
まず、こんなメッセージでエラーとなる。
/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:356:29: note: 'activeVideoMinFrameDuration' declared
・対策
/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h の356行目
@property(nonatomic) CMTime activeVideoMinFrameDuration NS_AVAILABLE(10_7, NA);
となっている。この次に、下記を追加した。
@property(nonatomic) CMTime activeVideoMaxFrameDuration NS_AVAILABLE(10_7, NA);
・またメイク
> make -j4
・あともう少しというところでエラー
[ 98%] Building CXX object modules/stitching/CMakeFiles/opencv_perf_stitching.dir/perf/opencl/perf_stitch.cpp.o
/Users/yukio/opencv_contrib/modules/optflow/perf/org/perf_disflow.cpp:89:41: error: call to 'pow' is ambiguous
Mat tmp(Size(dst_frame1.cols / (int)pow(2, src_scale), dst_frame1.rows / (int)pow(2, src_scale)), CV_8U);
/Users/yukio/opencv_contrib/modules/optflow/perf/org/perf_disflow.cpp:94:56: error: call to 'pow' is ambiguous
Mat displacement_field(Size(dst_frame1.cols / (int)pow(2, OF_scale), dst_frame1.rows / (int)pow(2, OF_scale)),
・対策
~ opencv_contrib/modules/optflow/perf/org/perf_disflow.cppの89行目を下記に変更
Mat tmp(Size(dst_frame1.cols / (1 < < src_scale), dst_frame1.rows / (1 << src_scale)), CV_8U);
94行目を下記に変更
Mat displacement_field(Size(dst_frame1.cols / (1 << OF_scale), dst_frame1.rows / (1 << OF_scale)),
この情報源は、https://github.com/opencv/opencv_contrib/pull/1208/files です。
・またまたメイク
> make -j4
いくつかwarningは出たが、
[100%] Linking CXX shared module ../../lib/python3/cv2.so
[100%] Built target opencv_python3
で終了。
・インストール
> sudo make install
--
--
-- Installing: /usr/local/bin/opencv_traincascade
-- Installing: /usr/local/bin/opencv_createsamples
-- Installing: /usr/local/bin/opencv_annotation
-- Installing: /usr/local/bin/opencv_visualisation
-- Installing: /usr/local/bin/opencv_interactive-calibration
-- Installing: /usr/local/bin/opencv_version
で完了
・cv2.soの移動
> ~ cd /usr/local/lib/python3.4/site-packages/
> ls -l *.so
-rwxr-xr-x 1 root admin 3858024 7 16 00:50 cv2.so
と出来ている。
> mv cv2.so /Users/yukio/.pyenv/versions/3.4.3/Python.framework/Versions/3.4/lib/python3.4/site-packages/
で移動。
・確認
> python
>>> import cv2
>>>
■ pyinstallerのインストール
pip install pyinstaller
>>Successfully installed pyinstaller-3.2.1
以上で、macOS10.8にpython3, Opencv3, wxPython4, PyInstaller3 の設定が完了しました。
Leave a comment
記事投稿日
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
« 9月 | ||||||
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |