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. Спасибо заранее.

0 ответов

Другие вопросы по тегам