Python docker keeps saying module not found

531 views Asked by At

I am trying to build a docker to host my Discord bot. The dockerfile is

FROM python:3.8
COPY ./Elevate/* /docker/
RUN python3.8 -m pip install discord.py==1.5.1
RUN python3.8 -m pip install -r docker/requirements.txt
CMD ["python", "/docker/bot.py"]

and docker-build . -t bot works fine. However, when I try to run the docker, I get

  File "/docker/bot.py", line 2, in <module>
    import discord
ModuleNotFoundError: No module named 'discord'

When building the docker, I can see that it successfully installed discord==1.5.1

requirements.txt contains:

discord.py == 1.5.1
dblpy
python-dateutil
babel
aiohttp-requests
parsedatetime
wavelink
pillow
statcord.py
jishaku
ksoftapi

I'm pretty new to docker, so if this is a stupid mistake, please don't judge :)

1

There are 1 answers

0
Ishan Joshi On BEST ANSWER

Change the requirements.txt from

discord.py == 1.5.1

to

discord.py==1.5.1

It's a best practice to maintain a requirements.lock. You can generate the lock file by running pip freeze > requirements.lock in the docker container.

Sample Command: docker exec -it <image> pip freeze > requirements.lock