Задать вопрос
Alex_Geer
@Alex_Geer
System Engineer

Почему не импортируется модуль на linux?

Приветствую товарищи. Нужна помощь. В краце вел разработку на Windows. Все ок все работает и запускается. Решил код засунуть в докер и запустить на Linux, пошли ошибки импорта. В чем может быть проблема?

Структура проекта примерно такая:
/app
│── src/
│   ├── __init__.py
│   ├── settings.py
│   ├── loading_and_processing_xml.py
│   ├── utility.py
└── main.py


Импортирую src в main следующим образом
from src import settings, loading_and_processing_xml, utility


Dockerfile

# Используем официальный Debian-образ с предустановленным Python
FROM python:3.13-slim

# Устанавливаем необходимые системные зависимости
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    curl \
    unzip \
    git \
    xvfb \
    libgbm1 \
    libasound2 \
    wget \
    && rm -rf /var/lib/apt/lists/*

# Устанавливаем DrawIO
ENV DRAWIO_VERSION "18.0.1"
WORKDIR /tmp
RUN wget -O drawio-desktop.deb -q https://github.com/jgraph/drawio-desktop/releases/download/v${DRAWIO_VERSION}/drawio-amd64-${DRAWIO_VERSION}.deb \
    && apt-get update && apt-get install -y ./drawio-desktop.deb \
    && rm drawio-desktop.deb \
    && rm -rf /var/lib/apt/lists/*

# Устанавливаем зависимости Python
COPY requirements.txt /tmp/
RUN pip install --no-cache-dir -r /tmp/requirements.txt && \
    rm /tmp/requirements.txt

# Устанавливаем переменную окружения DISPLAY
ENV DISPLAY=:99

# Копируем код приложения
WORKDIR /app
COPY app/ /app/

# Экспонируем порт 5000
EXPOSE 5000

# Устанавливаем переменные окружения для Flask
ENV FLASK_APP=main.py
ENV FLASK_RUN_HOST=0.0.0.0

# Копируем скрипт entrypoint
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

# Указываем скрипт entrypoint
ENTRYPOINT ["/entrypoint.sh"]

  • Вопрос задан
  • 73 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 1
Alex_Geer
@Alex_Geer Автор вопроса
System Engineer
Разобрался. В Dockerfile добавил:
ENV PYTHONPATH=/app:$PYTHONPATH
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы