bash 쉘 스크립트를 실행할 때 ModuleNotFoundError가 발생하지만 Python을 사용하여 터미널에서 실행할 때 제대로 작동합니다.

bash 쉘 스크립트를 실행할 때 ModuleNotFoundError가 발생하지만 Python을 사용하여 터미널에서 실행할 때 제대로 작동합니다.

그래서 하나의 스크립트에서 3개의 별도의 디스코드 봇을 함께 실행하려고 합니다.

start.sh 스크립트는 다음과 같습니다.

node spamprevention/index.js > logs/spamprevention.log 2>&1 &
node reportbot/index.js > logs/reportbot.log 2>&1 &
python main.py


while :; do
    sleep 5
done

해당 디렉토리에는 & 폴더와 및 파일이 있습니다 pi@tradehubrpi:~/discordbots/trade-hub-secret-agent. 이 스크립트를 시작하기 위해 터미널에 입력했습니다.spampreventionreportbotstart.shmain.pybash start.sh

이것은 로그입니다.

pi@tradehubrpi:~/discordbots/trade-hub-secret-agent $ bash start.sh
start.sh: line 1: logs/spamprevention.log: Permission denied
start.sh: line 2: logs/reportbot.log: Permission denied
Traceback (most recent call last):
  File "main.py", line 13, in <module>
    from discord import *  # import library
  File "/home/pi/discordbots/trade-hub-secret-agent/discord/__init__.py", line 21, in <module>
    from typing import NamedTuple, Literal
ImportError: cannot import name 'Literal' from 'typing' (/usr/lib/python3.7/typing.py)
^C
pi@tradehubrpi:~/discordbots/trade-hub-secret-agent $ sudo bash start.sh
Traceback (most recent call last):
  File "main.py", line 10, in <module>
    import aiohttp
ModuleNotFoundError: No module named 'aiohttp'

2개의 자바스크립트 봇은 잘 실행되고 있지만 Python 봇에서는 ModuleNotFoundError.python main.py

아시다시피 저는 개발자가 아닙니다. 간단한 해결책이 있습니까? (Raspberry Pi 4에서 실행)

편집; 실행 로그가 없습니다 python main.py. 이는 올바르게 실행되고 일부 작업 유형에 오류나 불일치가 있는 경우 로그에 표시된다는 의미입니다.

실행할 때 sudo python main.py이것을 반환하십시오 .

pi@tradehubrpi:~/discordbots/trade-hub-secret-agent $ sudo python main.py
Traceback (most recent call last):
  File "main.py", line 13, in <module>
    from discord import *  # import library
  File "/home/pi/discordbots/trade-hub-secret-agent/discord/__init__.py", line 21, in <module>
    from typing import NamedTuple, Literal
ImportError: cannot import name 'Literal' from 'typing' (/usr/lib/python3.7/typing.py)

관련 정보