#実現させたいこと
Raspberry Piでshファイルを実行することでpythonのプログラムを実行させようと思い、デスクトップ上にLogin.shというファイルを作りました。
sh
1#!/bin/bash 2sudo python2 /home/pi/ダウンロード/felica.py
・実行したのは、デスクトップにあるLogin.shをダブルクリックして実行しました。
↓felica.py
python
1#!/usr/bin/env python 2## -*- coding: utf-8 -*- 3import os 4import sys 5import nfc 6import binascii 7import webbrowser 8service_code = 0x090f 9print('ICカードをかざしてください') 10def connected(tag): 11 # タグのIDなどを出力する 12 print ('ID=' + binascii.hexlify(tag.idm)) 13 14 f = open('/home/pi/ダウンロード/felicadata.txt','w') 15 f.write(binascii.hexlify(tag.idm)) 16 f.close() 17 18 url = "http://192.168.200.158:51397/Login.aspx" 19 webbrowser.open(url) 20 21# タッチ時のハンドラを設定して待機する 22clf = nfc.ContactlessFrontend('usb') 23clf.connect(rdwr={'on-connect': connected})
・ターミナルから直接「sudo python2 /home/pi/ダウンロード/felica.py」をした場合は成功します。(ターミナル以外、pythonのshellで行うと以下のエラーが出て実行できませんでした。)
Python 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516] on linux2 Type "copyright", "credits" or "license()" for more information. >>> =============== RESTART: /home/pi/ダウンロード/felica.py =============== No handlers could be found for logger "nfc.llcp.sec " ICカードをかざしてください Traceback (most recent call last): File "/home/pi/ダウンロード/felica.py", line 22, in <module> clf = nfc.ContactlessFrontend('usb') File "/home/pi/ダウンロード/nfc/clf/__init__.py", line 75, in __init__ raise IOError(errno.ENODEV, os.strerror(errno.ENODEV)) IOError: [Errno 19] No such device >>>
#問題点
これによりfelica.pyを実行させたいのですが、shファイルを実行すると
「xterm を子プロセスとして起動できませんでした:そのようなファイルやディレクトリはありません」と出てしまい実行できませんでした。
#確認してみたこと
/bin/bashがないのかと思ってファイルマネージャーで見てみたところ/bin/bashというファイルは存在していました。
また同じような質問があったので拝見したのですが、どれも解決には至りませんでした。
linuxもRaspberry Piも触り始めたばかりでよく分かっていませんが、宜しくお願いいたします。
#環境
raspbian GNU/Linux 9.8(stretch)
回答2件
あなたの回答
tips
プレビュー