Что такое ошибка ImportError?

Ошибка ImportError: No module named 'module_name' возникает, когда Python не может найти указанный модуль для импорта.

Причины возникновения

  • Модуль не установлен
  • Виртуальное окружение не активировано
  • Неправильный PYTHONPATH
  • Опечатка в имени модуля
  • Проблемы с версией Python

Как отладить ошибку

  1. Проверь установку модуля - используй pip list
  2. Проверь активацию виртуального окружения - убедись, что оно активировано
  3. Проверь PYTHONPATH - используй sys.path
  4. Проверь правильность имени модуля - убедись в отсутствии опечаток

Как исправить ошибку

1. Установи модуль

1# Установка через pip
2pip install module_name
3
4# Установка из requirements.txt
5pip install -r requirements.txt
6
7# Установка в виртуальное окружение
8python -m pip install module_name

2. Добавь путь к модулю в sys.path

1import sys
2sys.path.append('/path/to/your/module')
3
4# Или установи переменную окружения
5export PYTHONPATH="/path/to/your/module:$PYTHONPATH"

3. Используй правильные импорты

1# Абсолютный импорт
2from package.subpackage import module
3
4# Относительный импорт
5from . import module
6from .. import module
7
8# Импорт конкретной функции
9from module import function

4. Проверь requirements.txt

1# requirements.txt
2django==4.2.0
3requests==2.31.0
4pandas==2.0.0

Как мониторить подобные ошибки

  • Используй виртуальные окружения для изоляции зависимостей
  • Веди requirements.txt с точными версиями
  • Используй CI/CD для проверки зависимостей
  • Тестируй импорты в разных окружениях

FAQ

В: Как проверить, установлен ли модуль?

О: Используй pip list | grep module_name или python -c "import module_name".

В: Что делать, если модуль установлен, но импорт не работает?

О: Проверь виртуальное окружение, PYTHONPATH и версию Python.

В: Как импортировать локальный модуль?

О: Добавь путь к модулю в sys.path или используй относительные импорты.

Лучшие практики

  • Всегда используй виртуальные окружения
  • Веди requirements.txt с зависимостями
  • Используй абсолютные импорты в продакшене
  • Проверяй импорты в CI/CD
  • Документируй зависимости проекта