从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
将传递参数blind
和 mice
到您的 Python 脚本。 (当然,如果它在 detect
之后不接受额外的命令行参数,这并不重要,但我仍然会传递它们,这样你就可以生成一条错误消息,而不是像忽略它们一样他们不在那里。)
我对编码和软件还很陌生,所以请坚持下去。我正在尝试通过 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
将传递参数blind
和 mice
到您的 Python 脚本。 (当然,如果它在 detect
之后不接受额外的命令行参数,这并不重要,但我仍然会传递它们,这样你就可以生成一条错误消息,而不是像忽略它们一样他们不在那里。)