QoreSDKをMac上で動かすことだけ考えている人のナレッジ

# はじめに

ubuntuで動かすからDockerを立てて、と思ってたんですがライブラリのリストを確認して
もっと色々な環境でできるのがわかったところをまとめました。

実際に動作確認をした環境はMacのみ。

# ライブラリの種類

共有していただいたライブラリのリストです。
<img width="543" alt="スクリーンショット 2020-01-09 6.44.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12362/2a231780-46da-9a7c-b81a-c379e89c0cc3.png">
試用許諾のメールにて共有をうけ、公開されている内容には見つからなくて記載は控えています。
規約も確認し大丈夫だとは思うのですが、ここにgoogleドライブのURLを載せるのが妥当か判断つかなかったので

ファイル名から推定したのは次の通り

## 対象OS

- linux(armv7l:armhf アーキテクチャ,x86_64アーキテクチャ)
- macosx(Mojave,Catalina)
- windows

Macの対象OSは一世代前と現行最新で問題ない印象
そして今頃気づいたんですが、raspberry Pi2以降から動かせそうです。素敵やん。

https://ubuntu-mate.org/

## サポートするpythonのバージョン
python3.5系,3.6系,3.7系

# 動作確認

## 動作環境
- OSX Mojave
- Python3.7.2
- VSCode

## 手順

 1. デモをダウンロード
 2. pythonのバージョンはpyenvで調整します。
 3. QoreSDKのライブラリを追加

### デモをダウンロード

https://github.com/qcore-info/advent-calendar-2019

<img width="1094" alt="スクリーンショット 2020-01-09 9.39.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12362/95c839cf-7ae5-3c10-ebd5-435f8021a0c6.png">

VScodeで開きます

<img width="378" alt="スクリーンショット 2020-01-09 9.44.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12362/8c21f714-91d0-952c-8ea3-960a3d012e5f.png">

### pyenv

pyenvをmacではbrewでinstallしてたと思います。（環境構築するときには入っていた）

> $ brew install pyenv


install済みのpythonのバージョンを確認し

```
$ pyenv versions
```

欲しいバージョンがない場合は探して

```bash
$ pyenv install --list | grep 3.7
  2.3.7
  3.3.7
  3.7.0
  3.7-dev
  3.7.1
  3.7.2
  miniconda-3.7.0
  miniconda3-3.7.0
  stackless-3.3.7
```
インストールする

```bash
$ pyenv install 3.7.2
```

ここらへんでMojaveならではのインストールできない問題が出てきていました（忘れつつありますが）
`対策`とある部分を参考に回避しました。

https://reasonable-code.com/pyenv-zlib-error/
> $ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /


デモのダウンロードしたフォルダに移動して、pythonのバージョンを指定します。

```
$ cd advent-calendar-2019-master
$ pyenv local 3.7.2
```
<img width="401" alt="スクリーンショット 2020-01-09 9.58.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12362/aa31693d-6e22-0877-a68b-5b10f0b87197.png">

QoreSDKをフォルダに追加して

<img width="365" alt="スクリーンショット 2020-01-09 10.02.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12362/a8493825-6a1c-a7e8-9871-beaa327a36c8.png">

https://github.com/qcore-info/advent-calendar-2019#%E4%BE%9D%E5%AD%98%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
より

```
$ pip install -r requirements.txt
$ pip install qore_sdk-0.1.0-cp37-cp37m-macosx_10_14_x86_64.whl
```
# デモを動かす

VSCodeのpythonをpyenvで指定しているライブラリに設定

<img width="547" alt="スクリーンショット 2020-01-09 10.48.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12362/1141739e-8abe-3700-ddcf-1348d38d4195.png">

## Qoreサンプル1_with_UCI.ipynb

pythonのバージョンも参照するライブラリも異なるので、環境に合わせて書き直し

<img width="997" alt="スクリーンショット 2020-01-09 10.43.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12362/a8e91e00-ccbb-eb74-d030-61448cdbca7b.png">

dataフォルダを`advent-calendar-2019-master`の配下に作成するとして

> %cd /content/data/

とあるところの二箇所を

> %cd /Users/[ユーザ名]/work/qiita/sample/advent-calendar-2019-master/data/

のように書き換えました。

ユーザ名、パスワード、エンドポイントは試用に発行しているものを設定。
<img width="327" alt="スクリーンショット 2020-01-09 20.27.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12362/d7a4052c-98b9-7f4c-a7d8-9232b777052a.png">

無事動きました。

<img width="654" alt="スクリーンショット 2020-01-09 20.29.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12362/b9866fb7-bf2f-38f4-7d3e-e88b775423c4.png">

# さいごに

今の所学習させたい対象が私にはなかったので、環境構築おもしろいなあの観点でかいた内容になりました。

Macの機械学習の環境は正直厳しくて、CUDAを使うためにはHigh SierraからOSをあげてはいけなかったり
代替手段に使えそう！（実際どうなのかもわかってない）。

提供されているライブラリで動作する環境が多種あり、動かすと面白そうなことができそうな可能性は十分感じました。
DockerにraspberryPi、ここらへんは次のチャレンジができればと思っています。
試用期間が終わってしまうのは残念ですけどね。