В этой статье
Ошибка ModuleNotFoundError: No module named 'openai' означает, что Python, запустивший программу, не находит пакет openai в своём окружении. Обычно пакет либо не установлен, либо установлен для другого интерпретатора. Исправление: определить Python проблемного запуска и установить SDK именно в него.
Найдите Python, который запускает программу
Поставьте вывод пути перед падающим импортом и запустите файл привычным способом — из терминала или IDE:
import sys
print(sys.executable)
import openai
Путь появится до ошибки. Сохраните его: именно этот исполняемый файл должен устанавливать пакет и запускать ваш код.
В существующем проекте сначала проверьте его окружение и зависимости в requirements.txt, pyproject.toml или другом принятом файле. Если версия openai уже закреплена, восстановите зависимости способом, принятым в проекте. Новое окружение и установка произвольной версии здесь могут только добавить второй источник путаницы. Следующие команды подходят для установки отдельного пакета в выбранное окружение.
Официальный SDK называется openai, поддерживает Python 3.10 и новее; пример импорта клиента — from openai import OpenAI.
Установите SDK тем же интерпретатором
В Windows PowerShell подставьте путь из sys.executable:
& "C:\Projects\My App\.venv\Scripts\python.exe" -m pip install openai
Оператор & вызывает программу, путь к которой записан в кавычках. Такая запись подходит и для пути с пробелами.
В macOS/Linux используйте свой путь в кавычках:
"/path/to/My App/.venv/bin/python" -m pip install openai
Вызов python -m pip запускает установку для выбранного интерпретатора. Обычный pip install openai может обратиться к другому Python из PATH: установка завершится успешно, а программа продолжит падать.
Если вы используете ChatGPT как помощника при отладке и выбираете месячный Plus, Amber Market — сервис оплаты зарубежных сервисов — предлагает оформление ChatGPT Plus на вашем аккаунте через менеджера. Заказ можно оплатить через СБП. Для оформления нужен аккаунт Free без действующей подписки; продление доступно после её окончания. Перед оплатой проверьте актуальные условия и итоговую стоимость. Для установки SDK и проверки импорта подписка ChatGPT не требуется.
Для нового проекта создайте .venv
Если это новый небольшой проект без готового окружения, выполните команды из его каталога. venv изолирует зависимости проекта. Его Python можно вызывать по пути без активации окружения, поэтому менять политику выполнения PowerShell ради этого не нужно.
Windows PowerShell:
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install openai
.\.venv\Scripts\python.exe -c "import sys, openai; print(sys.executable); print(openai.__file__)"
.\.venv\Scripts\python.exe main.py
macOS/Linux:
python3 -m venv .venv
./.venv/bin/python -m pip install openai
./.venv/bin/python -c "import sys, openai; print(sys.executable); print(openai.__file__)"
./.venv/bin/python main.py
Здесь py или python3 должен выбирать установленный Python 3.10 или новее. В последней строке замените main.py именем своего файла. После создания окружения и установка, и проверка, и запуск идут через один исполняемый файл. Активация оболочки на этот выбор уже не влияет.
Проверьте импорт в выбранном окружении
В блоках выше третья команда проверяет установку. Для уже существующего окружения выполните такую же проверку, подставив путь из проблемного запуска.
Windows PowerShell:
& "C:\Projects\My App\.venv\Scripts\python.exe" -c "import sys, openai; print(sys.executable); print(openai.__file__)"
macOS/Linux:
"/path/to/My App/.venv/bin/python" -c "import sys, openai; print(sys.executable); print(openai.__file__)"
Успешная проверка выводит два пути без исключения: первый — к выбранному Python, второй — к библиотеке openai в его окружении. Это подтверждает, что данный интерпретатор импортирует пакет. Сетевой запрос, API-ключ и платный вызов для этой проверки не нужны.
Затем запустите свой файл тем же Python. Если проверка прошла, а привычный способ запуска снова даёт ModuleNotFoundError, сравните окружения следующего раздела.
Терминал импортирует openai, а IDE всё ещё падает
Первым делом сравните sys.executable из успешной проверки с его значением в запуске IDE. Вывод пути должен стоять перед импортом openai, как в первом примере.
Если пути различаются, выберите в IDE интерпретатор, для которого прошла проверка: например, .venv\Scripts\python.exe на Windows или .venv/bin/python на macOS/Linux. Проверьте и конфигурацию запуска: она может задавать свой Python. После изменения остановите прежний запуск и запустите файл заново.
Установка пакета в одном окружении не добавляет его в другое. Поэтому повторять установку через случайный pip бессмысленно: сначала сравните пути, затем устанавливайте пакет в нужное окружение.
Если программа работает, а редактор только подчёркивает импорт, ошибка выполнения уже устранена. Проверьте выбранное окружение в настройках анализа кода редактора.
Если установка не привела к успешному импорту
Посмотрите, завершилась ли команда -m pip install openai без ошибки. Сообщение об успешной установке в соседнем терминале ещё ничего не говорит о Python вашей программы. Сверьте путь из sys.executable с тем, который использовали для установки; при несовпадении повторите установку нужным исполняемым файлом с учётом зависимостей проекта.
Если пути совпадают, сохраните полный вывод установки и traceback: без них нельзя определить, почему пакет остался недоступен. Не переустанавливайте Python наугад. openai-whisper — другой пакет; он не заменяет официальный SDK openai. Смена API-ключа тоже не добавит локальный модуль.
Ошибки ImportError: cannot import name ..., вызовы методов старого SDK и ошибки уже выполняемого API-запроса требуют отдельного разбора. Установка отсутствующего модуля не обещает исправить их все. После успешного импорта можно перейти к отладке Python-кода с ChatGPT или созданию и проверке небольшого Python-скрипта.
Источники
- Подписки ChatGPT — Amber MarketAmber Market
- OpenAI Python API libraryOpenAI
- Install packages in a virtual environment using pip and venvPython Packaging Authority
- venv — Creation of virtual environmentsPython Software Foundation