Ошибка сборки Docker приложения на Python: не удаётся найти установленный модуль.

Вопрос или проблема

Сначала: Я начинающий пользователь Docker.

Я пытаюсь задокеризировать приложение на Python, которое использует множество (~12 ГБ) модулей. Приложение капризно в отношении версий модулей, которые оно использует.

Приложение: https://github.com/rakuri255/UltraSinger

Кажется, что задокеризировать его получается нормально, но когда оно запускается, программа Python не может найти модуль Levenshtein:

# docker run ultra-singer --help
Traceback (most recent call last):
  File "/opt/USinger/UltraSinger.py", line 8, in <module>
    import Levenshtein
ModuleNotFoundError: No module named 'Levenshtein'

Почему она не может найти этот модуль?
Лог Docker показывает, что он установлен:

...
#12 144.4 Загружается python_Levenshtein-0.25.1-py3-none-any.whl (9.4 kB)
...
#12 534.2 Установка собранных пакетов: tensorboard-plugin-wit, [snip], requests-oauthlib, python-levenshtein, pylint, [snip], whisperx

ИЗМЕНЕНИЕ:
В соответствии с предложением @Ramhound, вывод команды pip show python-levenshtein:

#13 [9/9] RUN pip show python-levenshtein
#13 0.972 Название: python-Levenshtein
#13 0.972 Версия: 0.25.1
#13 0.972 Описание: Расширение Python для вычисления расстояний редактирования строк и сходств.
#13 0.972 Домашняя страница: https://github.com/rapidfuzz/python-Levenshtein
#13 0.972 Автор: Max Bachmann
#13 0.972 Email автора: [email protected]
#13 0.972 Лицензия: GPL-2.0-or-later
#13 0.973 Местоположение: /usr/local/lib/python3.10/site-packages
#13 0.973 Требует: Levenshtein
#13 0.973 Требуется для: 
#13 ЗАВЕРШЕНО 1.0s

Я сам создал простой Dockerfile:

FROM python:3.10
COPY src /opt/USinger/
COPY assets /opt/USinger/
COPY requirements.txt /opt/USinger/
WORKDIR /opt/USinger/
RUN pip3 install --upgrade pip
RUN pip3 install levenshtein==0.25.1
RUN pip3 install --upgrade certifi -r /opt/USinger/requirements.txt
ENTRYPOINT ["/opt/USinger/UltraSinger.py"]

Обратите внимание, что раньше использовалась команда pip install ..., но я в отчаянии переключился на pip3; проблема осталась прежней.

Я также добавил “shebang” в UltraSinger.py.

Существует ли способ отладить это?

Полный лог Docker:

~/Software/UltraSinger
[snugglepot] docker build -t ultra-singer --no-cache --progress=plain  .
#0 строитель с "умолчательным" экземпляром, использующим драйвер docker

#1 [internal] загрузка определения сборки из Dockerfile
#1 передача dockerfile: 389B завершено
#1 ЗАВЕРШЕНО 0.0s

#2 [internal] загрузка метаданных для docker.io/library/python:3.10
#2 ЗАВЕРШЕНО 0.9s

#3 [internal] загрузка .dockerignore
#3 передача контекста: 2B завершено
#3 ЗАВЕРШЕНО 0.0s

#4 [1/8] FROM docker.io/library/python:3.10@sha256:08a49662edbfff8a296e2db2cb3235e117d1caeb09c32cba65011a2de0306440
#4 ИЗОБРАЖЕНИЕ ИЗОБРАЖЕНИЯ

#5 [internal] загрузка контекста сборки
#5 передача контекста: 2.63kB завершено
#5 ЗАВЕРШЕНО 0.0s

#6 [2/8] COPY src /opt/USinger/
#6 ЗАВЕРШЕНО 0.1s

#7 [3/8] COPY assets /opt/USinger/
#7 ЗАВЕРШЕНО 0.1s

#8 [4/8] COPY requirements.txt /opt/USinger/
#8 ЗАВЕРШЕНО 0.1s

#9 [5/8] WORKDIR /opt/USinger/
#9 ЗАВЕРШЕНО 0.1s

#10 [6/8] RUN pip3 install --upgrade pip
#10 2.003 Требование уже удовлетворено: pip в /usr/local/lib/python3.10/site-packages (23.0.1)
#10 2.289 Сборка pip
#10 2.497   Загружается pip-24.2-py3-none-any.whl (1.8 MB)
#10 3.186      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 2.6 MB/s ETA 0:00:00
#10 3.281 Установка собранных пакетов: pip
#10 3.281   Попытка деинсталляции: pip
#10 3.282     Обнаружена существующая установка: pip 23.0.1
#10 3.490 Успешно деинсталлировано pip-23.0.1
#10 4.719 Успешно установлен pip-24.2
#10 4.719 ПРЕДУПРЕЖДЕНИЕ: Запуск pip от имени пользователя 'root' может привести к нарушению разрешений и конфликтному поведению с системным менеджером пакетов. Рекомендуется использовать виртуальную среду вместо этого: https://pip.pypa.io/warnings/venv
#10 ЗАВЕРШЕНО 5.1s

#11 [7/8] RUN pip3 install levenshtein==0.25.1
#11 1.477 Сборка levenshtein==0.25.1
#11 1.651   Загружается Levenshtein-0.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.3 kB)
#11 2.832 Сборка rapidfuzz<4.0.0,>=3.8.0 (от levenshtein==0.25.1)
#11 2.882   Загружается rapidfuzz-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 кБ)
#11 2.962 Загружается Levenshtein-0.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (177 кБ)
#11 3.111 Загружается rapidfuzz-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
#11 3.680    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 5.6 MB/s ETA 0:00:00
#11 3.717 Установка собранных пакетов: rapidfuzz, levenshtein
#11 3.897 Успешная установка levenshtein-0.25.1 rapidfuzz-3.10.0
#11 3.897 ПРЕДУПРЕЖДЕНИЕ: Запуск pip от имени пользователя 'root' может привести к нарушению разрешений и конфликтному поведению с системным менеджером пакетов, что может привести к непригодности вашей системы. Рекомендуется использовать виртуальную среду вместо этого: https://pip.pypa.io/warnings/venv. Используйте параметр --root-user-action, если вы понимаете, что делаете, и хотите подавить это предупреждение.
#11 ЗАВЕРШЕНО 4.3s

#12 [8/8] RUN pip3 install --upgrade certifi -r /opt/USinger/requirements.txt
#12 0.988 Сборка whisperx@ git+https://github.com/m-bain/whisperx.git (из -r /opt/USinger/requirements.txt (строка 654))
#12 0.989   Клонирование https://github.com/m-bain/whisperx.git в /tmp/pip-install-k7a311po/whisperx_181e6df6599445028d1732f0eb911f48
#12 0.990   Выполнение команды git clone --filter=blob:none --quiet https://github.com/m-bain/whisperx.git /tmp/pip-install-k7a311po/whisperx_181e6df6599445028d1732f0eb911f48
#12 3.277   Разрешение https://github.com/m-bain/whisperx.git на коммит 9e3a9e0e38fcec1304e1784381059a0e2c670be5
#12 3.279   Подготовка метаданных (setup.py): начало
#12 3.942   Подготовка метаданных (setup.py): завершено со статусом 'готово'
#12 4.200 Сборка certifi
#12 4.393   Загружается certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kБ)
#12 4.481 Сборка absl-py==2.1.0 (от -r /opt/USinger/requirements.txt (строка 7))
#12 4.536   Загружается absl_py-2.1.0-py3-none-any.whl.metadata (2.3 кб)
#12 5.231 Сборка aiohttp==3.9.5 (от -r /opt/USinger/requirements.txt (строка 11))
#12 5.264   Загружается aiohttp-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.5 кб)
#12 5.365 Сборка aiosignal==1.3.1 (от -r /opt/USinger/requirements.txt (строка 13))
#12 5.415   Загружается aiosignal-1.3.1-py-none-any.whl.metadata (4.0 кб)
#12 5.543 Сборка alembic==1.13.2 (от -r /opt/USinger/requirements.txt (строка 15))
#12 5.587   Загружается alembic-1.13.2-py3-none-any.whl.metadata (7.4 кб)
#12 5.666 Сборка antlr4-python3-runtime==4.9.3 (от -r /opt/USinger/requirements.txt (строка 17))
#12 5.716   Загружается antlr4-python3-runtime-4.9.3.tar.gz (117 кб)
#12 5.846 Подготовка метаданных (setup.py): начало
#12 6.110 Подготовка метаданных (setup.py): завершено со статусом 'готово'
#12 6.163 Сборка appdirs==1.4.4 (от -r /opt/USinger/requirements.txt (строка 19))
#12 6.206   Загружается appdirs-1.4.4-py2.py3-none-any.whl.metadata (9.0 кб)
#12 6.290 Сборка asteroid-filterbanks==0.4.0 (от -r /opt/USinger/requirements.txt (строка 21))
#12 6.345   Загружается asteroid_filterbanks-0.4.0-py3-none-any.whl.metadata (3.3 кб)
#12 6.503 Сборка astroid==3.2.4 (от -r /opt/USinger/requirements.txt (строка 23))
#12 6.545   Загружается astroid-3.2.4-py3-none-any.whl.metadata (4.5 кб)
#12 6.623 Сборка astunparse==1.6.3 (от -r /opt/USinger/requirements.txt (строка 25))
#12 6.656   Загружается astunparse-1.6.3-py2.py3-none-any.whl.metadata (4.4 кб)
#12 6.734 Сборка async-timeout==4.0.3 (от -r /opt/USinger/requirements.txt (строка 27))
#12 6.786   Загружается async_timeout-4.0.3-py-none-any.whl.metadata (4.2 кб)
#12 6.876 Сборка attrs==23.2.0 (от -r /opt/USinger/requirements.txt (строка 29))

[snip] для поддержания предела размера поста

#12 292.2 Загружается yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (301 кб)
#12 292.3 Загружается yt_dlp-2024.7.25-py3-none-any.whl (3.1 MB)
#12 292.6    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 9.4 MB/s ETA 0:00:00
#12 292.7 Загружается nvidia_cublas_cu12-12.1.3.1-py-none-manylinux1_x86_64.whl (410.6 MB)
#12 332.7    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 410.6/410.6 MB 10.0 MB/s ETA 0:00:00
#12 332.8 Загружается nvidia_cuda_cupti_cu12-12.1.105-py-none-manylinux1_x86_64.whl (14.1 MB)
#12 334.4    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.1/14.1 MB 8.9 MB/s ETA 0:00:00
#12 334.4 Загружается nvidia_cuda_nvrtc_cu12-12.1.105-py-none-manylinux1_x86_64.whl (23.7 MB)
#12 336.8    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.7/23.7 MB 10.0 MB/s ETA 0:00:00
#12 336.8 Загружается nvidia_cuda_runtime_cu12-12.1.105-py-none-manylinux1_x86_64.whl (823 кб)
#12 336.9    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 823.6/823.6 кб 7.0 MB/s ETA 0:00:00
#12 336.9 Загружается nvidia_cudnn_cu12-9.1.0.70-py-none-manylinux2014_x86_64.whl (664.8 MB)
#12 401.2    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 10.3 MB/s ETA 0:00:00
#12 401.2 Загружается nvidia_cufft_cu12-11.0.2.54-py-none-manylinux1_x86_64.whl (121.6 MB)
#12 412.4    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.6/121.6 MB 10.9 MB/s ETA 0:00:00
#12 412.4 Загружается nvidia_curand_cu12-10.3.2.106-py-none-manylinux1_x86_64.whl (56.5 MB)
#12 417.9    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.5/56.5 MB 10.4 MB/s ETA 0:00:00
#12 417.9 Загружается nvidia_cusolver_cu12-11.4.5.107-py-none-manylinux1_x86_64.whl (124.2 MB)
#12 429.8    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 124.2/124.2 MB 10.5 MB/s ETA 0:00:00
#12 429.8 Загружается nvidia_cusparse_cu12-12.1.0.106-py-none-manylinux1_x86_64.whl (196.0 MB)
#12 449.0    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.0/196.0 MB 10.2 MB/s ETA 0:00:00
#12 449.1 Загружается nvidia_nccl_cu12-2.20.5-py-none-manylinux2014_x86_64.whl (176.2 MB)
#12 466.4    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 176.2/176.2 MB 10.2 MB/s ETA 0:00:00
#12 466.4 Загружается nvidia_nvtx_cu12-12.1.105-py-none-manylinux1_x86_64.whl (99 кб)
#12 466.5 Загружается triton-3.0.0-1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (209.4 MB)
#12 487.2    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 209.4/209.4 MB 10.1 MB/s ETA 0:00:00
#12 487.2 Используется кешированный setuptools-75.1.0-py3-none-any.whl (1.2 MB)
#12 487.2 Загружается nvidia_nvjitlink_cu12-12.6.68-py-none-manylinux2014_x86_64.whl (19.7 MB)
#12 489.3    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.7/19.7 MB 9.6 MB/s ETA 0:00:00
#12 504.0 Создание колес для собранных пакетов: antlr4-python3-runtime, crepe, demucs, docopt, dora-search, julius, pretty-midi, resampy, treetable, whisperx
#12 504.0   Создание колеса для antlr4-python3-runtime (setup.py): начало
#12 504.6   Создание колеса для antlr4-python3-runtime (setup.py): завершено со статусом 'готово'
#12 504.6   Создано колесо для antlr4-python3-runtime: имя файла=antlr4_python3_runtime-4.9.3-py3-none-any.whl размер=144556 sha256=36ca0317456772c129dbb6c87ec5538708f927269d5db44f50a4a34fd214b043
#12 504.6   Сохранено в каталоге: /root/.cache/pip/wheels/12/93/dd/1f6a127edc45659556564c5730f6d4e300888f4bca2d4c5a88
#12 504.6   Создание колеса для crepe (setup.py): начало
#12 528.4   Создание колеса для crepe (setup.py): завершено со статусом 'готово'
#12 528.9   Создано колесо для crepe: имя файла=crepe-0.0.15-py3-none-any.whl размер=134848687 sha256=6200b58ac91043f572dcfcfa32ab9f076958afaf4db761a052398194041eabb8
#12 528.9   Сохранено в каталоге: /root/.cache/pip/wheels/48/0d/5a/0303421c941420cffb0eb8f35bddd5da10e5eef3813118a9ef
#12 528.9   Создание колеса для demucs (setup.py): начало
#12 529.5   Создание колеса для demucs (setup.py): завершено со статусом 'готово'
#12 529.5   Создано колесо для demucs: имя файла=demucs-4.0.1-py3-none-any.whl размер=78388 sha256=137fa55bbe8ea2e084ec8d9e66bb941b49cc5d2f39db55d02403b8ed6b4bddb1
#12 529.5   Сохранено в каталоге: /root/.cache/pip/wheels/2a/65/a1/6cc0e525a84375af3b09823b3326b0ece53c4e68302c054548
#12 529.5   Создание колеса для docopt (setup.py): начало
#12 529.9   Создание колеса для docopt (setup.py): завершено со статусом 'готово'
#12 529.9   Создано колесо для docopt: имя файла=docopt-0.6.2-py2.py3-none-any.whl размер=13706 sha256=41b0b7f60029e833a062568adde5d6d17750fda102d9c73eb993293a54b574e0
#12 529.9   Сохранено в каталоге: /root/.cache/pip/wheels/fc/ab/d4/5da2067ac95b36618c629a5f93f809425700506f72c9732fac
#12 529.9   Создание колеса для dora-search (pyproject.toml): начало
#12 530.3   Создание колеса для dora-search (pyproject.toml): завершено со статусом 'готово'
#12 530.3   Создано колесо для dora-search: имя файла=dora_search-0.1.12-py3-none-any.whl размер=75092 sha256=6395a7e6764e684b132cd4420316afbc27970e6d7012f9a11f76743f6c309cf5
#12 530.3   Сохранено в каталоге: /root/.cache/pip/wheels/b1/c2/c0/bea5cc405497284d584b958f293ef32c23bad42ae5e44d973c
#12 530.3   Создание колеса для julius (setup.py): начало
#12 530.7   Создание колеса для julius (setup.py): завершено со статусом 'готово'
#12 530.7   Создано колесо для julius: имя файла=julius-0.2.7-py3-none-any.whl размер=21870 sha256=2f3d71f2a1f406d4345e12f6e3884441bf0e4dd6b95c6054c72d95f37460f3e5
#12 530.7   Сохранено в каталоге: /root/.cache/pip/wheels/b9/b2/05/f883527ffcb7f2ead5438a2c23439aa0c881eaa9a4c80256f4
#12 530.7   Создание колеса для pretty-midi (setup.py): начало
#12 531.5   Создание колеса для pretty-midi (setup.py): завершено со статусом 'готово'
#12 531.5   Создано колесо для pretty-midi: имя файла=pretty_midi-0.2.10-py3-none-any.whl размер=5592285 sha256=72537b613def6b2259c4223dd06677c6ea842360dd2be58bf00d43bef2da7031
#12 531.5   Сохранено в каталоге: /root/.cache/pip/wheels/cd/a5/30/7b8b7f58709f5150f67f98fde4b891ebf0be9ef07a8af49f25
#12 531.5   Создание колеса для resampy (setup.py): начало
#12 531.9   Создание колеса для resampy (setup.py): завершено со статусом 'готово'
#12 531.9   Создано колесо для resampy: имя файла=resampy-0.2.2-py3-none-any.whl размер=320704 sha256=e64fdfe34c55831363321151da796c75b8c4ef1f7670817f20f9fca94ba35590
#12 531.9   Сохранено в каталоге: /root/.cache/pip/wheels/e5/a0/79/29e61754e5b3941ad4c7d01bf5bea99768e64e4bdd3180f32b
#12 531.9   Создание колеса для treetable (setup.py): начало
#12 532.2   Создание колеса для treetable (setup.py): завершено со статусом 'готово'
#12 532.2   Создано колесо для treetable: имя файла=treetable-0.2.5-py3-none-any.whl размер=7331 sha256=8324519aee5a196f533d97b149ebc712f4e2a1726b52cd7d6d4de36d1f843f96
#12 532.2   Сохранено в каталоге: /root/.cache/pip/wheels/72/55/0e/91c3655bdb162446f8a7cd477579397544454a63ae7c599c0c
#12 532.2   Создание колеса для whisperx (setup.py): начало
#12 532.6   Создание колеса для whisperx (setup.py): завершено со статусом 'готово'
#12 532.6   Создано колесо для whisperx: имя файла=whisperx-3.1.1-py3-none-any.whl размер=38486 sha256=8cb47c07f2956510829dfa885718cd5fff3ca1896a0c46c57f5e5d69238db647
#12 532.6   Сохранено в каталоге: /tmp/pip-ephem-wheel-cache-6bz9bwfv/wheels/27/fb/53/682b85073a466f1866910d7257233e53b0cc126ab50e7c5373
#12 532.6 Успешно построены antlr4-python3-runtime crepe demucs docopt dora-search julius pretty-midi resampy treetable whisperx
#12 534.2 Установка собранных пакетов: tensorboard-plugin-wit, sortedcontainers, sentencepiece, pytz, pyreadline3, pydub, primepy, mpmath, libclang, lameenc, keras, flatbuffers, docopt, dataclasses, brotli, appdirs, antlr4-python3-runtime, wrapt, wheel, websockets, webcolors, urllib3, unidecode, tzdata, typing-extensions, treetable, tqdm, tomlkit, tomli, threadpoolctl, termcolor, tensorflow-io-gcs-filesystem, tensorflow-estimator, tensorboard-data-server, tabulate, sympy, six, shellingham, setuptools, semver, safetensors, ruamel-yaml-clib, regex, rapidfuzz, pyyaml, pyparsing, pygments, pycryptodomex, pycparser, pyasn1, protobuf, pluggy, platformdirs, pillow, pathspec, packaging, oauthlib, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, numpy, networkx, mypy-extensions, mutagen, musicbrainzngs, multidict, more-itertools, mdurl, mccabe, markupsafe, markdown, llvmlite, kiwisolver, jsonpickle, joblib, isort, iniconfig, idna, humanfriendly, grpcio, greenlet, gast, future, fsspec, frozenlist, fonttools, filelock, exceptiongroup, einops, dill, decorator, cycler, colorlog, colorama, cloudpickle, click, charset-normalizer, chardet, certifi, cachetools, av, audioread, attrs, async-timeout, absl-py, yarl, werkzeug, typing-inspect, triton, tensorboardx, submitit, sqlalchemy, scipy, ruamel-yaml, rsa, retrying, requests, python-dateutil, pytest, pyasn1-modules, opt-einsum, omegaconf, nvidia-cusparse-cu12, nvidia-cudnn-cu12, numba, nltk, mido, marshmallow, markdown-it-py, marisa-trie, mako, lightning-utilities, keras-preprocessing, jinja2, imageio, h5py, google-pasta, ffmpeg-python, ctranslate2, contourpy, coloredlogs, cffi, black, astunparse, astroid, aiosignal, yt-dlp, soundfile, scikit-learn, rich, resampy, requests-oauthlib, python-levenshtein, pylint, pyhyphen-reloaded, pyannote-core, pretty-midi, pooch, pandas, onnxruntime, nvidia-cusolver-cu12, matplotlib, language-data, hyperpyyaml, huggingface-hub, google-auth, dataclasses-json, alembic, aiohttp, typer, torch, tokenizers, optuna, music21, librosa, langcodes, hmmlearn, google-auth-oauthlib, transformers, torchmetrics, torchaudio, tensorboard, pytorch-metric-learning, pyannote-database, julius, faster-whisper, dora-search, crepe, asteroid-filterbanks, torch-pitch-shift, tensorflow, speechbrain, pytorch-lightning, pyannote-pipeline, pyannote-metrics, openunmix, torch-audiomentations, lightning, demucs, pyannote-audio, whisperx
#12 537.2   Попытка деинсталляции: wheel
#12 537.2     Обнаружена существующая установка: wheel 0.44.0
#12 537.2     Деинсталляция wheel-0.44.0:
#12 537.2       Успешно деинсталлировано wheel-0.44.0
#12 670.3 Успешно установлены absl-py-2.1.0 aiohttp-3.9.5 aiosignal-1.3.1 alembic-1.13.2 antlr4-python3-runtime-4.9.3 appdirs-1.4.4 asteroid-filterbanks-0.4.0 astroid-3.2.4 astunparse-1.6.3 async-timeout-4.0.3 attrs-23.2.0 audioread-3.0.1 av-11.0.0 black-24.4.2 brotli-1.1.0 cachetools-5.4.0 certifi-2024.7.4 cffi-1.16.0 chardet-5.2.0 charset-normalizer-3.3.2 click-8.1.7 cloudpickle-3.0.0 colorama-0.4.6 coloredlogs-15.0.1 colorlog-6.8.2 contourpy-1.2.1 crepe-0.0.15 ctranslate2-4.3.1 cycler-0.12.1 dataclasses-0.6 dataclasses-json-0.6.7 decorator-5.1.1 demucs-4.0.1 dill-0.3.8 docopt-0.6.2 dora-search-0.1.12 einops-0.8.0 exceptiongroup-1.2.2 faster-whisper-1.0.0 ffmpeg-python-0.2.0 filelock-3.15.4 flatbuffers-24.3.25 fonttools-4.53.1 frozenlist-1.4.1 fsspec-2024.6.1 future-1.0.0 gast-0.4.0 google-auth-2.32.0 google-auth-oauthlib-0.4.6 google-pasta-0.2.0 greenlet-3.0.3 grpcio-1.65.1 h5py-3.11.0 hmmlearn-0.3.2 huggingface-hub-0.24.2 humanfriendly-10.0 hyperpyyaml-1.2.2 idna-3.7 imageio-2.34.2 iniconfig-2.0.0 isort-5.13.2 jinja2-3.1.4 joblib-1.4.2 jsonpickle-3.2.2 julius-0.2.7 keras-2.10.0 keras-preprocessing-1.1.2 kiwisolver-1.4.5 lameenc-1.7.0 langcodes-3.4.0 language-data-1.2.0 libclang-18.1.1 librosa-0.9.2 lightning-2.3.3 lightning-utilities-0.11.6 llvmlite-0.43.0 mako-1.3.5 marisa-trie-1.2.0 markdown-3.6 markdown-it-py-3.0.0 markupsafe-2.1.5 marshmallow-3.21.3 matplotlib-3.9.1 mccabe-0.7.0 mdurl-0.1.2 mido-1.3.2 more-itertools-10.3.0 mpmath-1.3.0 multidict-6.0.5 music21-9.1.0 musicbrainzngs-0.7.1 mutagen-1.47.0 mypy-extensions-1.0.0 networkx-3.3 nltk-3.8.1 numba-0.60.0 numpy-1.26.4 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.20.5 nvidia-nvjitlink-cu12-12.6.68 nvidia-nvtx-cu12-12.1.105 oauthlib-3.2.2 omegaconf-2.3.0 onnxruntime-1.18.1 openunmix-1.3.0 opt-einsum-3.3.0 optuna-3.6.1 packaging-23.2 pandas-2.2.2 pathspec-0.12.1 pillow-10.4.0 platformdirs-4.2.2 pluggy-1.5.0 pooch-1.8.2 pretty-midi-0.2.10 primepy-1.3 protobuf-3.19.6 pyannote-audio-3.1.1 pyannote-core-5.0.0 pyannote-database-5.1.0 pyannote-metrics-3.2.1 pyannote-pipeline-3.0.1 pyasn1-0.6.0 pyasn1-modules-0.4.0 pycparser-2.22 pycryptodomex-3.20.0 pydub-0.25.1 pygments-2.18.0 pyhyphen-reloaded-4.0.6 pylint-3.2.6 pyparsing-3.1.2 pyreadline3-3.4.1 pytest-8.3.2 python-dateutil-2.9.0.post0 python-levenshtein-0.25.1 pytorch-lightning-2.3.3 pytorch-metric-learning-2.6.0 pytz-2024.1 pyyaml-6.0.1 rapidfuzz-3.9.4 regex-2024.7.24 requests-2.32.3 requests-oauthlib-2.0.0 resampy-0.2.2 retrying-1.3.4 rich-13.7.1 rsa-4.9 ruamel-yaml-0.18.6 ruamel-yaml-clib-0.2.8 safetensors-0.4.3 scikit-learn-1.5.1 scipy-1.14.0 semver-3.0.2 sentencepiece-0.2.0 setuptools-75.1.0 shellingham-1.5.4 six-1.16.0 sortedcontainers-2.4.0 soundfile-0.12.1 speechbrain-1.0.0 sqlalchemy-2.0.31 submitit-1.5.1 sympy-1.13.1 tabulate-0.9.0 tensorboard-2.10.1 tensorboard-data-server-0.6.1 tensorboard-plugin-wit-1.8.1 tensorboardx-2.6 tensorflow-2.10.0 tensorflow-estimator-2.10.0 tensorflow-io-gcs-filesystem-0.31.0 termcolor-2.4.0 threadpoolctl-3.5.0 tokenizers-0.15.2 tomli-2.0.1 tomlkit-0.13.0 torch-2.4.0 torch-audiomentations-0.11.1 torch-pitch-shift-1.2.4 torchaudio-2.4.0 torchmetrics-1.4.0.post0 tqdm-4.66.4 transformers-4.39.3 treetable-0.2.5 triton-3.0.0 typer-0.12.3 typing-extensions-4.12.2 typing-inspect-0.9.0 tzdata-2024.1 unidecode-1.3.8 urllib3-2.2.2 webcolors-24.6.0 websockets-12.0 werkzeug-3.0.3 wheel-0.43.0 whisperx-3.1.1 wrapt-1.16.0 yarl-1.9.4 yt-dlp-2024.7.25
#12 670.3 ПРЕДУПРЕЖДЕНИЕ: Запуск pip от имени пользователя 'root' может привести к нарушению разрешений и конфликтному поведению с системным менеджером пакетов, возможно, сделав вашу систему непригодной. Рекомендуется использовать виртуальную среду вместо этого: https://pip.pypa.io/warnings/venv. Используйте параметр --root-user-action, если вы понимаете, что делаете, и хотите подавить это предупреждение.
#12 ЗАВЕРШЕНО 673.9s

#13 экспорт в изображение
#13 экспорт слоев
#13 экспорт слоев 66.8s завершен
#13 запись изображения sha256:0e5b5cdd5d7f2625177aff653c9a738c47e9cf174d5c419fe8b3498f1c7e33f9 завершен
#13 регистрация в docker.io/library/ultra-singer 0.0s завершена
#13 ЗАВЕРШЕНО 66.8s

Ответ или решение

Проблема, с которой вы столкнулись, когда ваше приложение на Python не может найти модуль Levenshtein, скорее всего, связана с тем, как вы устанавливаете и импортируете пакеты в вашем Docker образе. Рассмотрим некоторые шаги по устранению этой проблемы.

Анализ вашей ситуации:

  1. Версия модуля: Вы упомянули, что проблема возникает с модулем Levenshtein, но в выводе логов видно, что установлен именно python-Levenshtein, который является другим пакетом и не требует установки Levenshtein в качестве отдельного модуля. Модуль Levenshtein может не существовать, и, вместо этого, нужно использовать python-Levenshtein.

  2. Изменение импортирования: Проверьте свой код и убедитесь, что вы импортируете модуль как import Levenshtein, а не, например, как import python-Levenshtein. Если вы используете конструкции импортирования, которые не соответствуют названию установленного пакета, это может привести к ошибке.

Предложения по исправлению:

Вот несколько шагов, которые вы можете предпринять для решения проблемы:

  1. Используйте правильное название модуля в коде:
    Замените:

    import Levenshtein

    На:

    import python_Levenshtein as Levenshtein
  2. Обновите ваш Dockerfile:
    В вашем Dockerfile вы используете команду для установки levenshtein, заменив её на установку python-Levenshtein:

    RUN pip3 install python-Levenshtein==0.25.1
  3. Удалите локальные кэши PIP:
    Иногда кэшированные данные могут вызвать конфликты. Добавьте в Dockerfile команду для очистки кэша PIP:

    RUN pip3 cache purge

Пример обновлённого Dockerfile:

FROM python:3.10

COPY src /opt/USinger/
COPY assets /opt/USinger/
COPY requirements.txt /opt/USinger/

WORKDIR /opt/USinger/

RUN pip3 install --upgrade pip
RUN pip3 install python-Levenshtein==0.25.1
RUN pip3 install --upgrade certifi -r requirements.txt
RUN pip3 cache purge

ENTRYPOINT ["python3", "/opt/USinger/UltraSinger.py"]

Проверка установленного модуля:

После внесённых изменений, если ошибка останется, выполните следующее в вашем контейнере, чтобы убедиться, что модуль доступен:

docker run -it ultra-singer /bin/bash

Затем внутри контейнера выполните:

python3 -c "import Levenshtein"

Если модуль успешно импортируется, проблема будет решена.

Заключение:

Если после выполнения всех вышеуказанных шагов проблема остаётся, возможно, стоит проверить все импорты в коде и другие зависимости для конфликтов. Также убедитесь, что ваши зависимости в requirements.txt не конфликтуют с установленными модулями. Надеюсь, эти рекомендации помогут вам устранить проблему!

Оцените материал
Добавить комментарий

Капча загружается...