python - 从 py 脚本在虚拟环境中调用命令
问题描述
我对编码和软件很陌生,所以请坚持下去。我正在尝试通过 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
runningpant blind mice
将传递参数blind
并传递mice
给您的 Python 脚本。(当然,如果它在 之后不接受其他命令行参数detect
,这并不重要,但我仍然会将它们传递给您,以便您可以生成错误消息,而不是让它们被忽略,就好像它们不存在一样。 )
推荐阅读
- c - 二叉搜索树的前序中的叶节点
- c++ - 为什么模板的多个定义不会产生链接错误?
- javascript - 映射数组并将日期属性转换为毫秒并返回新数组
- javascript - jQuery使图像变灰
- mysql - 使用 MySql(5.7.31)时出现信号量等待持续 > 600 秒错误
- python - 在 Keras 模型中添加嵌入层以进行 NLP 分类时出现形状错误
- python - 由于 AuthorizationPermissionMismatch,无法使用 python 对 ADLS 进行身份验证
- python - python比较两个dict列表并显示缺失的项目
- css - 文本区域中带有滚动条的框阴影是片状的.. :(
- html - 谷歌网页翻译上的自定义 CSS