ModuleNotFoundError при запуске Docker-Image
В настоящее время я пытаюсь создать и запустить Docker-образ вокруг своего программного обеспечения. Строительство завершается успешно, когда я хочу запустить изображение, однако оператор
File "tts_api_graves/app.py", line 6, in <module>
File "/container/tts_api_graves/synthesize_custom.py", line 8, in <module>
from tts_api_graves.utils.synthesis import synthesis
ModuleNotFoundError: No module named 'tts_api_graves'
появляется. Структура папок следующая:
Dockerfile
tts_api_graves/
app.py
synthesize_custom.py
utils/
synthesize.py
Я знаю, что команду импорта можно просто записать как from utils.synthesis import synthesis
, поскольку utils
-folder находится в том же каталоге, что и synthesize_custom
(где находится команда импорта). Однако есть намного больше импорта изtts_api_graves
-folder в файлах, расположенных в подпапках, поэтому решил добавить родитель папку изtts_api_graves
к моим путям python внутри контейнера. Следовательно, вышеупомянутый импорт должен работать. Мой Dockerfile выглядит следующим образом:
FROM pytorch/pytorch:1.0.1-cuda10.0-cudnn7-runtime
WORKDIR /container
RUN export PYTHONPATH="$PYTHONPATH: /container"
ADD . .
RUN apt-get update && \
apt-get install -y libsndfile1 espeak && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
COPY requirements.txt /container
RUN pip install -r requirements.txt
ENV LANG C.UTF-8
CMD python tts_api_graves/app.py
Вы можете видеть, что в третьей строке Dockerfile
Я добавил соответствующий путь к python. Я даже проверил его существование черезsys.path
и он был успешно добавлен. Структура внутри контейнера теперь следующая:
container/
Dockerfile
tts_api_graves/
app.py
synthesize_custom.py
utils/
synthesis.py
а также /container
добавляется к моим системным путям и по-прежнему импортирует from tts_api_graves.xy
не работают. Что я сделал не так? Пожалуйста, не будьте слишком суровы, я новичок в Docker. Спасибо заранее.