2025, Nov 22 15:02

Как исправить No module named 'pandas' в PyCharm при работе с Poetry

Решение ошибки No module named 'pandas' в PyCharm при использовании Poetry: укажите IDE на venv Poetry и выберите интерпретатор Python, чтобы импорты работали.

Когда проект ведётся с помощью Poetry v2.1.3, окружение создаётся на основе pyproject.toml, а pandas указан как зависимость, легко решить, что всё настроено как надо: poetry update отработал, а IDE показывает пакет установленным. Но скрипт всё равно падает с ошибкой «No module named 'pandas'». Если вы сталкиваетесь с этим в PyCharm Community v2025.1.2, дело вовсе не в pandas — проблема в интерпретаторе Python, который PyCharm использует для этого проекта.

Воспроизводимый симптом

У вас корректная конфигурация: объявлены pandas, Python >=3.12 и <4.0, окружение создаётся без ошибок. Но при запуске простого импорта в проекте по‑прежнему возникает ошибка «модуль не найден».

import pandas as pdata

print("Pandas version:", pdata.__version__)

Вместо вывода версии скрипт завершается с ошибкой:

No module named 'pandas'

Что на самом деле происходит

Окружение, которое собрал Poetry, и интерпретатор, настроенный в PyCharm, — это не одно и то же. Даже если в интерфейсе PyCharm pandas числится в разделе Project Interpreter, IDE может указывать на другой интерпретатор Python, отличный от виртуального окружения, которое Poetry создал для этого проекта. В результате код исполняется тем интерпретатором, где pandas не установлен.

Как исправить

Сначала найдите виртуальное окружение (venv), которое Poetry создал для проекта. Воспользуйтесь командой, выводящей точный путь к этому окружению. Затем в PyCharm откройте Settings, перейдите в Project → Python Interpreter, добавьте интерпретатор, выберите существующее окружение и укажите исполняемый файл Python по найденному пути (например, python внутри каталога bin этого venv). Если ваш код лежит в src/poetry_demo/, убедитесь, что каталог src/ помечен как «Sources Root», чтобы импорты корректно разрешались.

После того как вы укажете PyCharm на venv от Poetry, тот же скрипт выполняется успешно без каких‑либо правок кода:

import pandas as pdata

print("Pandas version:", pdata.__version__)

«Спасибо, по вашим шагам я смог найти существующий интерпретатор и направить PyCharm на него. Теперь всё работает.»

Почему это важно

Poetry отвечает за разрешение зависимостей и создание окружения, а PyCharm — за выбор интерпретатора, на котором запускается и индексируется ваш код. Если эти две части не синхронизированы, появляются парадоксы «установлено, но не находится» и затяжная отладка. Гарантируйте, что IDE использует интерпретатор из Poetry, — это снимает двусмысленность, делает импорты предсказуемыми и избавляет от хрупкости при работе из разных оболочек и инструментов.

Выводы

Если Poetry утверждает, что зависимость установлена, но ваш скрипт в PyCharm её не импортирует, проверьте, что PyCharm использует именно интерпретатор, созданный Poetry. Уточните путь командой Poetry, переключите Project Interpreter на этот путь и пометьте src/ как Sources Root, если код лежит под src/. Как только интерпретатор совпадёт с тем venv, где находятся ваши пакеты, ошибка импорта исчезнет, и проект начнёт работать как задумано.