dskst's diary

Life and Tech Blog

Mac x nfcpy x PaSoRi でNFCの情報を読み込む

NFCの情報読み込みに nfcpy を使ってみました。この記事では Mac にて nfcpy を利用してNFC情報読み込みをするまでをまとめます。

f:id:dskst9:20181104220501p:plain

環境

nfcpy のインストール

その前に、 Python のバージョンを確認しましょう。
nfcpy は 2018/5/6 現在、まだ Python3 には対応していません。
Support Python 3 · Issue #47 · nfcpy/nfcpy · GitHub

Python2 を使用している場合

$ brew install libusb
$ pip install nfcpy

これでサクッとインストールできます。
以下でエラーが発生せずに import ができたら完了。

$ python
>>> import nfc

注意:Mac デフォルト Python は pip がインストールされていないため、「Python3 を使用している場合」と同じ手順になります。

Python3 を使用している場合

Homebrewでインストールされる/usr/local/bin/pythonが再びPython2に変更 に記載されているとおり、 HomeBrew でインストールされるのが Python3 になっています。Python3 では nfcpy が動作しないため、 pyenv で Python2&pip を使えるようにするか、 Mac に Python2&pip をインストールする必要があります。

(過去に pyenv 使って、環境ぐちゃったので pyenv は削除!) qiita.com

というわけで、私は Mac に Python2&pip をインストールしました。
インストール方法は下記コメントにもあるように、 Python 公式からインストールするのがベターです。

ja.stackoverflow.com

4. Macintosh で Python を使う — Python 2.7.15 ドキュメント に詳細が記載されています。Python 2.7.15 のインストーラーをダウンロードして、あとはポチポチしていくだけです。

$ python2 -V
Python 2.7.15

では、改めて pip2 で nfcpy をインストールします。

$ brew install libusb
$ pip2 install nfcpy
$ python2
>>> import nfc

nfcpy をつかってみる

github.com

上記より、ソースをダウンロードなりしてきます。
nfcpy/examples/tagtool.py を実行するだけで NFC の読み込みをすることができます。

$ python2 tagtool.py show
[nfc.clf] searching for reader on path usb
[nfc.clf] using Sony RC-S370/P RCS956v1.30 at usb:020:003
** waiting for a tag **

「waiting for a tag」の状態でNFCをかざして読み込めたら成功です。

参考

qiita.com

pongsuke.hatenablog.com

qiita.com