2017-12-25 18 views
0

起動時にpythonスクリプト(scanBluetooth.py)を実行すると、PythonモジュールのpexpectでImportErrorが発生します。起動時に実行されるpythonスクリプトは、pexpectモジュールをインポートします。 pexpectモジュールはRaspberry PIにインストールされており、手動でターミナルを使用して起動するとscanBluetooth.pyは正しく動作します。私は/home/pi/etc/rc.localを編集してscanBluetooth.pyを実行しました。コードは以下の通りです。起動時にpythonモジュールのpexpectやその他のインポートされたモジュールをロードする方法はありますか?Raspberry PiのImportError起動時にPythonスクリプトを実行するとき

rc.localに

#!/bin/sh -e 
# 
# rc.local 
# 
# This script is executed at the end of each multiuser runlevel. 
# Make sure that the script will "exit 0" on success or any other 
# value on error. 
# 
# In order to enable or disable this script just change the execution 
# bits. 
# 
# By default this script does nothing. 

# Print the IP address 
_IP=$(hostname -I) || true 
if [ "$_IP" ]; then 
    printf "My IP address is %s\n" "$_IP" 
fi 

python /home/pi/Glasses/scanBluetooth.py & 

exit 0 

トレースバック

File "/home/pi/Glasses/scanBluetooth.py", line 2, in <module> 
    from Bluetoothctl import Bluetoothctl 
    File "/home/pi/Glasses/Bluetoothctl.py", line 2, in <module> 
    import pexpect 
ImportError: No module named pexpect 

答えて

0

あなたはpexpectがインストールされ、手動で呼び出されたときに、プログラムが実行されると、私は唯一の可能性(rc.localが異なるPythonのバージョンを実行することを想定することができると言うので、ルートとして)を別のライブラリパスで置き換えます。

は、彼らが異なっているかどうかを確認するために、両方の手で、あなたのrcスクリプトで

type python 

を実行してみてください。

それから私は、

/path/to/other/python -m pip install library 
+0

さてさて、私はそれを試してみるよ、他のPythonのインスタンスのおかげで必要なライブラリをインストールするようにアドバイスします。 –

+0

今回は正しいpythonパスにpexpectをインストールしようとしましたが、私はまだImportErrorを取得しています。 –

+0

Pythonバージョンの2つのパスは何ですか?そして、pexpectをインストールするための正確なコマンドは何でしたか? –

関連する問題