0

我已经在我的树莓派上设置了谷歌助手 sdk,如下所示:https ://developers.google.com/assistant/sdk/prototype/getting-started-pi-python/run-sample

现在为了重新运行助手,我制定了两个命令是

$ source env/bin/activate

(env) $ google-assistant-demo

但是,我想将此过程自动化为一个脚本,我可以从rc.local(后跟一个&)调用该脚本,以使助手从启动开始。

但是,如果我运行一个简单的脚本

#!/bin/bash
source env/bin/activate
google-assistant-demo

助手不在环境中运行我的环境路径是/home/pi/env/bin/activate 我怎样才能拥有它以便脚本启动环境然后在虚拟环境中运行助手

编辑:最后我采用了以下方法:

以此为基础: https ://youtu.be/ohUszBxuQA4?t= 774 – 感谢 Eric Parisot

您需要下载他使用的 src 文件并将其内容提取到/home/pi/src/

但是有一些变化。

我没有运行gassist.shas sudo,因为它给了我以下错误:

OpenAlsaHandle PcmOpen: No such file or directory
[7689:7702:ERROR:audio_input_processor.cc(756)] Input error
ON_MUTED_CHANGED:
{‘is_muted’: False}
ON_START_FINISHED
ON_ASSISTANT_ERROR:
{‘is_fatal’: True}
[7689:7704:ERROR:audio_input_processor.cc(756)] Input error
ON_ASSISTANT_ERROR:
{‘is_fatal’: True}

修复:不要运行为sudo

如果gassist.sh给出有关RPi.GPIO您需要执行的错误https://youtu.be/ohUszBxuQA4?t=580

$ cd /home/pi/env/bin
$ source activate
(env) $ pip install RPi.GPIO
(env) $ deactivate

然后我做了sudo nano /etc/profile 并将其附加到最后:

#Harvs was here on 24/06/17
if pidof -x "gassist.sh" >/dev/null; then
    echo ""
    echo "/etc/profile says:"
    echo "An instance of Google Assistant is already running, will not start again"
    echo ""
else
    echo "Starting Google Assistant..."
    echo "If you are seeing this, perhaps you have SSH within seconds of reboot"
    /home/pi/src/gassist.sh &
fi

现在它可以完美运行,并且在虚拟环境中:)

4

3 回答 3

2

在这里找到解决方案:https ://raspberrypi.stackexchange.com/a/45089

在你的根目录中创建一个启动 shell 脚本(我命名为“launch”),使其也可执行:

sudo nano launch.sh

我是这样写的:

#!/bin/bash
source /home/pi/env/bin/activate
/home/pi/env/bin/google-assistant-demo

保存文件

编辑 LXDE-pi 自动启动文件

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

将此添加到该文件的底部

./launch.sh

重启

于 2017-06-06T16:32:50.007 回答
0

最后我采用了以下方法:

以此为基础:https ://youtu.be/ohUszBxuQA4?t= 774 – 感谢 Eric Parisot

但是有一些变化。

您需要下载他使用的 src 文件并将其内容提取到/home/pi/src/

我没有运行gassist.shas sudo,因为它给了我以下错误:

OpenAlsaHandle PcmOpen: No such file or directory
[7689:7702:ERROR:audio_input_processor.cc(756)] Input error
ON_MUTED_CHANGED:
{‘is_muted’: False}
ON_START_FINISHED
ON_ASSISTANT_ERROR:
{‘is_fatal’: True}
[7689:7704:ERROR:audio_input_processor.cc(756)] Input error
ON_ASSISTANT_ERROR:
{‘is_fatal’: True}

修复:不要以 sudo 身份运行

如果gassist.sh给出有关RPi.GPIO您需要执行的错误https://youtu.be/ohUszBxuQA4?t=580

$ cd /home/pi/env/bin
$ source activate
(env) $ pip install RPi.GPIO
(env) $ deactivate

然后我做了sudo nano /etc/profile并将其附加到最后:

#Harvs was here on 24/06/17
if pidof -x "gassist.sh" >/dev/null; then
    echo ""
    echo "/etc/profile says:"
    echo "An instance of Google Assistant is already running, will not start again"
    echo ""
else
    echo "Starting Google Assistant..."
    echo "If you are seeing this, perhaps you have SSH within seconds of reboot"
    /home/pi/src/gassist.sh &
fi

现在它完美地工作了,在虚拟环境中,并在引导到 CLI 模式下!:)

于 2017-06-24T22:28:45.797 回答
0

脚本从rc.local根目录中执行(或者可能在root用户的主目录中,取决于发行版,我认为?)

简单的解决方法是编写环境的完整路径。

#!/bin/bash
source /home/pi/env/bin/activate
google-assistant-demo
# or maybe /home/pi/google-assistant-demo

没有必要明确地背景任何东西rc.local

于 2017-06-01T05:19:45.460 回答