Модуль Python не найден: причины и способы исправления

Раздел: Установка и настройка -> Пакеты

Причины ошибки и основной метод устранения

Как правильно установить модуль Python и избежать ModuleNotFoundError?

Самая частая причина

Ошибка возникает, когда Python не может найти пакет, который вы пытаетесь импортировать. Наиболее эффективное решение - установить модуль с помощью pip и убедиться, что он ставится в то же окружение, где запускается скрипт.

pip install имя_модуля

Pip upgrade package python (обновление пакета через pip)

Например, для импорта requests:

pip install requests

Python pip update package (обновление пакета через pip update)

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

import requests
print(requests.__version__)

Python build package (сборка пакета python)

Если команда pip не найдена, возможно, Python не добавлен в PATH. На Windows используется py -m pip install .... На Linux/macOS - python3 -m pip install .... Если установка прошла успешно, но модуль всё равно не импортируется, проверьте, не используете ли вы другое виртуальное окружение.

Что делать, если имя модуля написано с опечаткой или неверным регистром?

Названия модулей чувствительны к регистру. Например, import numpy работает, а import Numpy - нет. Проверьте точное имя пакета в документации или на PyPI. Также некоторые пакеты устанавливаются под одним именем, а импортируются под другим (например, pip install bs4 даёт импорт from bs4 import BeautifulSoup).

# Неверный импорт вызовет ошибку
import BeautifulSoup  # ModuleNotFoundError: No module named 'BeautifulSoup'

Python download package (скачивание пакета python)

# Правильный импорт
from bs4 import BeautifulSoup

Python pip install local package (установка локального пакета через pip)

Ошибка может возникнуть, если вы скопировали имя из документации, но случайно добавили лишний пробел или символ. Всегда используйте автодополнение в IDE или команду pip list для проверки точного названия установленных пакетов.

Как убедиться, что модуль установлен в текущем виртуальном окружении?

Очень часто разработчики устанавливают пакет глобально, но проект использует виртуальное окружение. В результате модуль не виден. Сначала активируйте нужное окружение, затем устанавливайте модуль или проверяйте его наличие.

# Активация окружения (Windows)
venv\Scripts\activate

# Активация (Linux/macOS)
source venv/bin/activate

# Проверка установленных пакетов
pip list

# Установка модуля в данное окружение
pip install requests

Python install package version (установка пакета определенной версии в python)

Забыли активировать окружение? Тогда pip install ставит пакет в глобальный site-packages, и он может не попасть в окружение. После активации всегда проверяйте путь к интерпретатору: which python (Linux/macOS) или where python (Windows).

Может ли версия Python повлиять на доступность модуля?

Некоторые модули не поддерживают старые версии Python (например, Python 2.7 или 3.5). Если вы используете устаревшую версию, модуль может отсутствовать в репозитории для этой версии. Проверьте минимальные требования пакета.

# Узнать версию Python
python --version

# Установить конкретную версию модуля, совместимую с вашей версией Python
pip install numpy==1.19.5  # Пример для Python 3.6

модули python linux (модули python в linux)

При попытке установки может появиться ошибка "No matching distribution found". Это сигнал, что пакет не поддерживает вашу версию Python. Рекомендуется перейти на более новую версию Python или найти альтернативу.

Что делать, если модуль действительно не установлен?

Самый прямой случай. Выполните установку через pip install. Если вы используете несколько версий Python, укажите явно интерпретатор:

python3.9 -m pip install pandas
# или
py -3.9 -m pip install pandas  # Windows

Update lib python (обновление библиотек python)

Также можно установить пакет из файла requirements.txt, если он есть в проекте:

pip install -r requirements.txt

Python packages list (список установленных пакетов)

Если установка завершается ошибкой Permission denied, используйте флаг --user для установки в каталог текущего пользователя:

pip install --user numpy

Remove python package (удаление пакета python)

Или запустите терминал от имени администратора (Windows) / с sudo (Linux), но это менее предпочтительно.

Как исправить ошибки, связанные с повреждённым кэшем pip?

Иногда pip кэширует некорректные версии пакетов, что приводит к ошибкам импорта даже после установки. Очистите кэш и переустановите модуль.

pip cache purge
pip install --no-cache-dir имя_модуля

# Альтернатива: удалить модуль и установить заново
pip uninstall имя_модуля -y
pip install имя_модуля

Python pip install windows (установка пакетов pip в windows)

Иногда конфликты возникают между версиями зависимостей. Используйте pip check для выявления несовместимостей:

pip check

Python pip windows (установка pip на windows)

Если обнаружены конфликты, попробуйте создать новое виртуальное окружение и установить зависимости заново.

Что если модуль расположен в нестандартном каталоге? (проблема PYTHONPATH)

Если вы написали свой модуль или скачали архив, его нужно либо поместить в папку, откуда Python ищет модули, либо добавить путь в sys.path.

import sys
sys.path.append('/путь/к/папке/с/модулем')
import мой_модуль

Apt get python (установка python через apt-get)

Для постоянного добавления используется переменная окружения PYTHONPATH:

export PYTHONPATH=$PYTHONPATH:/путь/к/папке  # Linux/macOS
set PYTHONPATH=%PYTHONPATH%;C:\путь\к\папке  # Windows

Windows package python (установка пакетов python на windows)

Импорт может не сработать, если внутри модуля есть ошибки синтаксиса или зависимости. Проверьте, что модуль сам по себе работоспособен.

Как работать с менеджером пакетов Conda, если pip не помогает?

Conda управляет не только Python-пакетами, но и системными библиотеками. Если модуль не устанавливается через pip (например, сложные научные пакеты), попробуйте conda.

conda create -n myenv python=3.9
conda activate myenv
conda install numpy pandas

При использовании conda и pip в одном окружении возможны конфликты - лучше устанавливать пакеты только через один менеджер.

Если после conda install модуль не импортируется, проверьте, активировано ли созданное окружение. Команда conda list покажет установленные пакеты.

- установить библиотеку python visual studio (установка библиотек python в visual studio)
- Pip idle python (установка пакетов pip в idle)
- Uv python windows (установка и использование uv в python на windows)

Расширенные примеры для отладки и решения

Ниже представлены нестандартные и подробные примеры работы с модулями, которые помогут в сложных ситуациях.

Проверка путей поиска модулей

Узнайте, откуда Python пытается импортировать модули:

Пример
import sys
for i, path in enumerate(sys.path):
    print(f"{i}: {path}")
0: /usr/lib/python3.9
1: /usr/lib/python3.9/lib-dynload
2: /home/user/.local/lib/python3.9/site-packages
3: /usr/local/lib/python3.9/dist-packages
...

Если ваш пакет находится в другом каталоге, добавьте его через sys.path.append() или установите через pip install -e . (режим редактирования).

Установка конкретной версии модуля из репозитория

Пример
pip install requests==2.28.1           # точная версия
pip install 'requests>=2.25,<3.0'     # диапазон версий
pip install git+https://github.com/psf/requests.git@v2.28.1  # из Git
Successfully installed requests-2.28.1

Использование файла requirements.txt с нестандартными источниками

Пример
cat requirements.txt
--index-url https://private-pypi.example.com/simple
--trusted-host private-pypi.example.com
numpy==1.23.5
my_package @ git+https://github.com/user/my_package.git@main
Пример
pip install -r requirements.txt

Установка пакета без зависимостей (для разрешения конфликтов)

Пример
pip install numpy --no-deps

Позволяет установить только сам пакет, не трогая зависимости. Применяется, когда зависимости уже установлены, но версия конфликтует.

Переустановка модуля с игнорированием кэша и обновлением pip

Пример
pip install --upgrade pip
pip install --no-cache-dir --force-reinstall numpy
Successfully installed numpy-1.25.2

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

Пример
python -c "import numpy; print(numpy.__file__)"
/home/user/.local/lib/python3.9/site-packages/numpy/__init__.py

Если файл не найден, модуль не установлен или находится вне путей поиска.

Создание виртуального окружения с явным указанием версии Python

Пример
python3.9 -m venv myenv39
source myenv39/bin/activate
pip install pandas

Это особенно полезно, если в системе установлено несколько версий Python и нужно изолировать проект для конкретной версии.

Установка модуля в пользовательскую директорию (--target)

Пример
pip install --target /path/to/my_libs numpy

Затем перед импортом нужно добавить этот путь в sys.path:

Пример
import sys
sys.path.insert(0, '/path/to/my_libs')
import numpy

Отладка импорта с помощью trace

Пример
python -v -c "import numpy" 2>&1 | head -20

Выводит подробную информацию о том, какие файлы ищутся и загружаются. Помогает понять, почему модуль не найден (например, ищет не в том месте).

Использование Pipenv для автоматического управления окружением

Пример
pip install pipenv
pipenv install requests
pipenv shell
python -c "import requests; print(requests.__version__)"

Pipenv создаёт виртуальное окружение и файлы Pipfile, исключая путаницу с окружениями.

Модуль Python не найден - comments

En
Python module not found (python)