Python3 で tagtool.py を実行する

Raspberry Pi 3 と Sony の RC-S380 というカードリーダーの組み合わせで FeliCa カードを読みたいのだが、けっこう同じことをしている人は多くてネット上に情報はたくさんある。

そこで、「RaspberryPiで!SONYのPaSoRi(RC-S380)で(NFC)Felica情報を読み取る!(KOKENSHAの技術ブログ)」という記事など参考に一応セットアップしてみたのだが、最後にサンプルプログラムを実行すると、

pi@raspberrypi:~/test/pasori/nfcpy/examples $ sudo python tagtool.py
This script requires Python 3

と、「Python 3 のプログラムやで」と怒られる。
今回の OS(Raspbian GNU/Linux 10)には、Python 2.7.16 と Python 3.7.3 が共存している。

そこで「じゃあ」と、Python 3 で実行すると、

pi@raspberrypi:~/test/pasori/nfcpy/examples $ sudo python3 tagtool.py
Traceback (most recent call last):
  File "tagtool.py", line 29, in <module>
    import ndef
ModuleNotFoundError: No module named 'ndef'

ndef モジュールが無いと怒られる。

20190816_raspbian1.jpg
どうすりゃいいの???(^^;

しばし考えたが、ndef モジュールを Python 3 用にセットアップするのが一番近道だと思ったので、以下のとおり対応。

・RC-S380 が認識されているか確認(ま、念の為)

pi@raspberrypi:~ $ lsusb|grep Sony
Bus 001 Device 004: ID 054c:06c3 Sony Corp. RC-S380

・nfcpyは導入されているか?(一緒に導入される libusb1 を見てみる)

pi@raspberrypi:~ $ pip3 list|grep usb
pi@raspberrypi:~ $ pip list|grep usb
libusb1           1.7.1

Python 2.7.16 の方には入っているのに、Python 3.7.3 の方には入ってない。
Python 3.7.3 の pip(Python のサードパーティー製パッケージを管理するためのツール)を使ってインストールが必要。ちなみに、Python 3.7.3 用の pip は pip3 という名でインストールされている。

・Python 3.7.3 の方にも nfcpy を導入

pi@raspberrypi:~ $ sudo pip3 install nfcpy
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting nfcpy
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/7e/ed/3b3a00ada844f8a9229c8a79f460a1a13e870b767a1eb0ee0caf99740e9d/nfcpy-1.0.3-py3-none-any.whl (186kB)
    100% |████████████████████████████████| 194kB 794kB/s
Requirement already satisfied: pyserial in /usr/lib/python3/dist-packages (from nfcpy) (3.4)
Collecting libusb1 (from nfcpy)
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))': /simple/libusb1/
  Downloading https://www.piwheels.org/simple/libusb1/libusb1-1.7.1-py3-none-any.whl (59kB)
    100% |████████████████████████████████| 61kB 96kB/s
Collecting pydes (from nfcpy)
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Downloading https://www.piwheels.org/simple/pydes/pyDes-2.0.1-py2.py3-none-any.whl
Collecting ndeflib (from nfcpy)
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/c9/80/bbc9a4818cd74807f914d225611cd724d8c0e56237b952a9a4aa6d583f5c/ndeflib-0.3.3-py2.py3-none-any.whl (56kB)
    100% |████████████████████████████████| 61kB 792kB/s
Installing collected packages: libusb1, pydes, ndeflib, nfcpy
Successfully installed libusb1-1.7.1 ndeflib-0.3.3 nfcpy-1.0.3 pydes-2.0.1

なんか、やたらと「Cache entry deserialization failed, entry ignored」と出てるが???最後は Successfully installed で終わってるんで良さ気。

・ちゃんと導入されたか見てみる

pi@raspberrypi:~/test/pasori $ pip3 list|grep usb
libusb1           1.7.1
pi@raspberrypi:~/test/pasori $ pip3 list|grep nf
nfcpy             1.0.3

大丈夫そう。

で、FeliCa カードを読むサンプルプログラムを実行してみる。

pi@raspberrypi:~/test/pasori/nfcpy/examples $ sudo python3 tagtool.py
[nfc.clf] searching for reader on path usb
[nfc.clf] using SONY RC-S380/P NFC Port-100 v1.11 at usb:001:004
** waiting for a tag **
Type3Tag 'FeliCa Lite-S (RC-S966)' ID=012E4CD257C6A091 PMM=00F1000000014300 SYS=88B4

お。ちゃんと、FeliCa カード読んで ID も捕まえてるやん。OK、OK。
Clip to Evernote

トラックバック(0)

このブログ記事を参照しているブログ一覧: Python3 で tagtool.py を実行する

このブログ記事に対するトラックバックURL: http://blog.netandfield.com/mt/mt-tb.cgi/5405

コメントする

このブログ記事について

このページは、shinodaが2019年8月17日 03:11に書いたブログ記事です。

ひとつ前のブログ記事は「天下一品らしい魚介スープ」です。

次のブログ記事は「FeliCa カード読み込みの簡単なスクリプト」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら