#python #docker #python-3.6
#python #докер #python-3.6
Вопрос:
Я успешно установил ibm_db v3.0.1
пакет в образ докера, но когда я пытаюсь импортировать модуль ibm_db_dbi, он выдает ошибку.
Dockerfile :
FROM python:3.6.8-alpine3.9
WORKDIR /run
COPY . /run
RUN pip install --trusted-host pypi.python.org -r requirements.txt
EXPOSE 7000
CMD ["python", "run.py"]
после сборки он успешно выполнил приведенный ниже модуль ibm_db для изображения.
Загрузка https://files.pythonhosted.org/packages/98/cb/f77d9bd5f64246074af364cc30e20e3044c533890f3b67d30e89615c2fc5/ibm_db-3.0.1.tar.gz (642кБ)
Пожалуйста, помогите мне решить эту проблему.
command to run docker image :- docker run -it -p 7000:7000 dotsapi
ошибка при запуске файла docker:-
Файл «/run/Informix_Conn.py «, строка 3, в
import ibm_db_dbi as db ImportError: Error loading shared library libcrypt.so.1: No such file or directory (needed by
/usr/local/lib/python3.6/site-packages/clidriver/lib/libdb2.so.1)
Заранее спасибо!!
Комментарии:
1. Можете ли вы отредактировать свой вопрос, чтобы добавить фактический текст
Dockerfile
выполняемого вами файла и конкретное сообщение об ошибке, которое вы получаете? Если это ошибка при запуске контейнера, также минимальная выдержка из скрипта Python иdocker run
команды?
Ответ №1:
Вы можете добавить a pip install ibm_db
в свой dockerfile или создать requirements.txt досье. И вызовите его в своем dockerfile с :
ADD ./requirements.txt ./
RUN python3 -m pip install -r requirements.txt
Редактировать
Это сработало для меня :
В моем dockerfile :
FROM python:3.6
ADD ./requirements.txt ./
RUN python3 -m pip install -r requirements.txt
ADD ./test.py /run
После успешной сборки я запустил свой образ с
docker run --name testpython testpython:1 sleep 3600
Перейдите в мой контейнер
docker exec -it testpython /bin/bash
И когда я запускаю консоль python или мой тестовый скрипт, импорт в порядке.
ПРИМЕЧАНИЕ: с изображением python: 3.6.8-alpine3.9 сборка не работает. Проверьте это, чтобы понять, почему
Комментарии:
1. Я уже успешно установил пакет ibm_db, но проблема все еще сохраняется.
2. Попробуйте запустить свой скрипт с помощью команды python3. Убедитесь, что ваша библиотека установлена в python3, а не в python2. Вы можете зайти в свой контейнер с помощью docker exec -it, чтобы убедиться в этом.
3. Я запускаю скрипт с помощью команды python3, но проблема по-прежнему сохраняется
4. хорошо, попробуйте использовать pip3 для установки вашей библиотеки. Я попробую со своей стороны
5. пробовал использовать pip3.6 для установки библиотеки, но все та же проблема.