bashシェルスクリプトを実行するとModuleNotFoundErrorが発生しますが、Pythonを使用して端末で実行すると正常に動作します。

bashシェルスクリプトを実行するとModuleNotFoundErrorが発生しますが、Pythonを使用して端末で実行すると正常に動作します。

そのため、1つのスクリプトで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つのJavaScriptボットはうまく動作していますが、PythonボットではModuleNotFoundErrorpython 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)

ベストアンサー1

おすすめ記事