LibreOffice のマクロ実行環境に nfcpy をインストールする[プログラミング]
(2019-08-24 15:54:31) by shinoda


< ページ移動: 1 2 >

この間作った「FeliCa カード読み込み」プログラムを LibreOffice のマクロにしてみようと思ったんだけど(OpenOffice.org や、その流れをくむ LibreOffice は、マクロ言語として Python や JavaScript が使える)、とりあえず実行してみると、

Python のスクリプト vnd.sun.star.script:nfc_macro_test.py$GetCardData?language=Python&location=share の実行中に Scripting Framework エラーが発生しました。

メッセージ: <class 'ImportError'>: No module named 'nfc'
<以下略>

とエラーになる。カードリーダーを制御するためのモジュールが読み込めないようだ。

LibreOffice はマクロ実行に、Windows にインストールされている Python ではなく、自前で用意した C:\Program Files\LibreOffice\program\python-core-3.5.7\bin\python.exe を使用する。そのため、モジュール類もこの Python 用にインストールする必要がある。

Python環境としてのLibreOfficeをより便利に使うために (2018-03-23)」というサイトを参考にインストールを行った。

1.まず、パッケージ管理ソフト pip のインストーラ(get-pip.py)をダウンロード

https://pip.pypa.io/en/stable/installing/ では、UNIX 系 OS 用に curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py で手に入れろと書いてあるが、Windows に curl コマンドはないので、直接ブラウザに https://bootstrap.pypa.io/get-pip.py を打って入手。
あとでコマンドを実行するディレクトリに置く。

2.get-pip.py を実行し、pip をインストールする。

俺は、get-pip.py を C:\Users\shinoda\Source\Python の下に置き、そのディレクトリに cd してからコマンド実行。

C:\Users\shinoda\Source\Python>set PATH=C:\Program Files\LibreOffice\program;%PATH%
C:\Users\shinoda\Source\Python>python get-pip.py --user

これで pip がインストールされる。

C:\Users\shinoda\AppData\Roaming\Python\Python35\Scripts ディレクトリ以下を見れば、pip.exe、pip3.5.exe、pip3.exe がインストールされている(全部同じもの)。
これで、外部モジュールをインストールする準備はできた。

3.pip で nfcpy をインストールする

C:\Users\shinoda\AppData\Roaming\Python\Python35\Scripts ディレクトリ以下にインストールされた pip を使うために path を通してから実行。

C:\Users\shinoda\Source\Python>set PATH=C:\Users\shinoda\AppData\Roaming\Python\Python35\Scripts;%PATH%
C:\Users\shinoda\Source\Python>pip install --user nfcpy

これでインストールされる。

4.パッケージ(fcpy や libusb1)が正常に入ったか確認

C:\Users\shinoda\Source\Python>pip list
Package    Version
---------- -------
libusb1    1.7.1
ndeflib    0.3.3
nfcpy      1.0.3
pip        19.2.2
pyDes      2.0.1
pyserial   3.4
setuptools 41.2.0
wheel      0.33.6

バッチリですな。

< ページ移動: 1 2 >


コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8