電気ウナギ的○○

About Home

Python3 で tagtool.py を実行する

shinoda (2019年8月17日 03:11)
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。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/5405

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE