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
此外,这可能是(不完全)重复。
我正在为我的 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
此外,这可能是(不完全)重复。