玩 AI 時, 經常需要自己編譯軟體。 很麻煩的是, AI 軟體經常有很長一串相依套件, 其中有些套件很難編譯。 以我最近在玩的影像處理為例, opencv 跟 boost 是兩個很常用到但編譯起來困難重重的套件。 還好找到 docker-cmake-opencv-boost 這個現成的 Dockerfile。 向作者求助兩次之後, 得到 迅速有效的回應。 我就直接拿原作者的 Dockerfile 來用:
mkdir cvbstnpy wget https://raw.githubusercontent.com/pathtrk/docker-cmake-opencv-boost/numpy/Dockerfile docker build -t ckhung/cvbstnpy .
製作並上傳了 ckhung/cvbstnpy 這個 docker image。
它的上一層 (parent image) 是
pathtrk/docker-python3-opencv, 再上一層是
python:3.5.3。
用 cat /etc/os-release 看到作業系統版本是 debian jessie。
但是請注意: python 相關套件請 不要用 apt-get
安裝, 而要用 pip 安裝。
因為 which python
看到的是
/usr/local/bin/python , 最終指向 /usr/local/bin/python3.5
也就是說它並不是 apt-get 所安裝的執行檔。
至於 pip, 也可用 which pip
查詢,
看到的也是在同一個目錄下 (/usr/local/bin),
是當初跟著 python:3.5 一起安裝的版本, 所以沒問題。
還有, 編譯時的 /usr/include 也應改成 /usr/local/include、 連結時的 /usr/lib 也應改成 /usr/local/lib 。
如果你想編譯的程式, 所用的 boost 版本 <= 1.62, 而且有用到 boost.numpy, 那麼必須照著 這個說明 小改一下原始碼。
沒有留言:
張貼留言
因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。