从py脚本在虚拟环境中调用命令

Calling command in virtual environment from py script

我对编码和软件还很陌生,所以请坚持下去。我正在尝试通过 Python 脚本在我的 Raspberry Pi 终端中执行命令。我希望能够从桌面 运行 这个 pi 脚本。要执行的命令是 (rpi-deep-pantilt-env) pi@raspberrypi:~/rpi-deep-pantilt $ rpi-deep-pantilt detect 所以如您所见,我需要 cd 进入 rpi-deep-pantilt,然后激活我的虚拟环境,然后 运行 通过 py 脚本执行所有命令。

一个简单的 shell 脚本来完成您的要求:

#!/bin/sh
cd "$HOME"/rpi-deep-pantilt
. ./rpi-deep-pantilt-env/bin/activate
./rpi-deep-pantilt detect "$@"

其中大部分或全部可能是不必要的。我想你可以 运行

#!/bin/sh
d="$HOME"/rpi-deep-pantilt
exec "$d"/rpi-deep-pantilt-env/bin/python "$d"/rpi-deep-pantilt detect "$@"

不过,如果您的 Python 脚本具有硬编码的文件路径,需要它在特定目录中 运行,这是一个错误,会阻止它工作。

"$@" 表示传递任何命令行参数,因此如果您将此脚本另存为 pant,运行ning pant blind mice 将传递参数blindmice 到您的 Python 脚本。 (当然,如果它在 detect 之后不接受额外的命令行参数,这并不重要,但我仍然会传递它们,这样你就可以生成一条错误消息,而不是像忽略它们一样他们不在那里。)