Shell Python 的脚本抛出 ModuleNotFoundError

Shell Script For Python Throws ModuleNotFoundError

我正在为我的 Raspberry Pi 3B 尝试 运行 python 脚本。 我的 shell 脚本“atboot.sh”如下所示:

#!/bin/bash
cd /home/pi/pythoncodefolder
date >> logs
sudo python3 test.py >> logs

当我尝试使用 sh atboot.sh 命令在 cmd 上 运行 它时,出现导入错误:

Traceback (most recent call last):
    File "test.py", line 5, in <module>
        import cv2
ModuleNotFoundError: No module named 'cv2'

但是当我 运行 cmd 上的程序没有 shell 脚本时,使用 python3 test.py,我没有得到任何错误。

谢谢。

使用sudo造成的。当您 运行 python3 program.py 时,您会在 $USER 环境设置中调用它。

您可以从 sudoers 中删除 Defaults !env_reset。或者添加 Defaults env_keep += "PYTHONPATH".

但我会断言,您可以 无需 sudo 就可以做到这一点。

#!/bin/bash
cd /home/pi/pythoncodefolder
date >> logs
python3 test.py >> logs

此外,这可能是(不完全)重复。