アプリ版:「スタンプのみでお礼する」機能のリリースについて

pythonのスクリプトを実行しようとしています。
~ $ python /home/pi/mqtt/mqtt.py のようにパスを指定してmqtt.pyを動かそうとすると下記のエラーになります。
どのように対処したら良いのでしょうか。
(~/mqtt $ python mqtt.py では動作します)

Traceback (most recent call last):
File "/home/pi/mqtt/mqtt.py", line 29, in <module>
client.tls_set(ca_certs)
File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 772, in tls_set
context.load_verify_locations(ca_certs)
IOError: [Errno 2] No such file or directory

A 回答 (2件)

これはエラーの発生元までの呼び出しが書いてあります。


Pythonが出したエラーなので、Pythonはちゃんと動作しています。

まず、
File "/home/pi/mqtt/mqtt.py", line 29, in <module>
client.tls_set(ca_certs)
で、 "/home/pi/mqtt/mqtt.py" というファイルの29行目、client.tls_set(ca_certs) を実行したときにエラーになった、と言っています。

File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 772, in tls_set
context.load_verify_locations(ca_certs)
とつづいてますが、これは、上記の client.tls_set(ca_certs) の中から呼ばれた "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py" というファイルの 772行目でエラーになった、言っています。

IOError: [Errno 2] No such file or directory
これが、エラーの内容です。
そんなファイル(またはディレクトリ)は無い、 と言っています。

一番可能性が高いのは "/home/pi/mqtt/mqtt.py" というファイルの29行目、client.tls_set(ca_certs) でファイル名を指定しているところで指定を間違えている(または指定していない)のではないか、ということです。

> ~/mqtt $ python mqtt.py では動作します

ということから考えると、
・ ~/mqttからの相対パスで指定しているので、他のディレクトリで実行すると見つからない
というのが一番に考えられます。


「カレントディレクトリ」「相対パス」って理解してますか?
    • good
    • 0
この回答へのお礼

有難うございます。いただいた内容を1つ、1つ解読しまして、とてもよく理解できました。
その中から、もしかしたら、と思い当たることができたのでやってみたところ、無事解決できました!
本当にありがとうございました。

お礼日時:2018/11/13 19:15

Pythonのパスが通ってないのではないでしょうか

    • good
    • 0
この回答へのお礼

ありがとうございます。無事解決できました!

お礼日時:2018/11/13 19:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!