2025, Dec 12 15:03
Как исправить ImportError: cannot import name 'genai' from 'google' — переход на google-genai
Гайд по исправлению ImportError: cannot import name 'genai' from 'google' в Python при деплое: ставим google-genai, обновляем импорты и фиксируем версию
Исправить ошибку ImportError: cannot import name 'genai' from 'google' при развертывании несложно, если согласовать код и зависимости с актуальным SDK Google GenAI. Если скрипт работает локально, но падает в продакшене, обычно проблема в том, какой SDK установлен и как вы его импортируете. Ниже — как сделать окружения согласованными и надёжными.
Кратко о проблеме
Вы разворачиваете Python‑приложение и видите стек вызовов, завершающийся ошибкой импорта:
Traceback (most recent call last):
File "/opt/render/project/src/bot.py", line 4, in <module>
from google import genai as google_genai
ImportError: cannot import name 'genai' from 'google' (unknown location)
Импорты в приложении выглядят примерно так:
import discord as dsc
from discord import app_commands as slash
import google.generativeai as legacy_sdk
from google import genai as unified_api
from google.genai.types import Tool as T, GenerateContentConfig as GenCfg, GoogleSearch as GSearch
import os as osmod
import re as regex
from urllib.parse import urlparse as parse_url
from dotenv import load_dotenv as loadenv
from flask import Flask as WebApp
from threading import Thread as BgThread
from datetime import datetime as dt, timedelta as delta
import PIL.Image as pilimg
import io as iobuf
Почему так происходит
Пакет google-generativeai устарел. Текущий, унифицированный SDK публикуется как google-genai, и пути импортов изменились. Ошибка возникает, когда среда выполнения не может разрешить from google import genai — именно этот модуль предоставляет новый SDK. Если локально всё работает, а после деплоя — нет, значит, в продакшене новый пакет недоступен под ожидаемым пространством имён.
Обратите внимание: в traceback важная часть — в самом конце: ImportError: cannot import name 'genai' from 'google'. Предыдущие строки лишь подводят к месту, где импорт падает.
Решение
Установите унифицированный SDK Google GenAI и используйте обновлённые пути импортов. Устанавливаемый пакет — google-genai:
pip install google-genai
Если деплой выполняется через requirements.txt, убедитесь, что в среде ставится нужная версия. Добавьте строку ниже — это устраняет ошибку импорта в окружениях развертывания:
google-genai>=1.19.0
Затем перейдите на унифицированные импорты:
from google import genai as gai
from google.genai import types as gai_types
Исправленный пример
Ниже — фрагмент, который сохраняет логику программы, но приводит импорты к текущему SDK. Переименованы только пространства имён — без изменения функциональности:
import discord as dsc
from discord import app_commands as slash
from google import genai as gai
from google.genai import types as gai_types
import os as osmod
import re as regex
from urllib.parse import urlparse as parse_url
from dotenv import load_dotenv as loadenv
from flask import Flask as WebApp
from threading import Thread as BgThread
from datetime import datetime as dt, timedelta as delta
import PIL.Image as pilimg
import io as iobuf
Если в проекте ранее смешивались старые и новые импорты, после установки google-genai приведите всё к варианту выше.
Почему это важно
Устаревания SDK влияют на CI/CD и хостинговые платформы. Локальные машины могут скрывать проблему, если на них стоят другие или более старые пакеты. Явно фиксируйте зависимость — и имя пакета, и совместимую версию — чтобы избежать сюрпризов в чистой среде.
Разбирая ошибки импорта в деплойнутых приложениях, держите в фокусе две вещи: используйте пакет, соответствующий пути импорта, и убедитесь, что этот пакет действительно установлен в целевой среде. Чтобы сузить причину, сведите скрипт к минимальному воспроизводимому примеру, который лишь импортирует и инициализирует то, что вы проверяете.
Итоги и практические советы
Перейдите с устаревшего google-generativeai на унифицированный google-genai, установите его в среде развертывания и обновите импорты на from google import genai и from google.genai import types. Зафиксируйте или ограничьте версию в requirements.txt, например google-genai>=1.19.0, чтобы среда выполнения соответствовала локальной. Если проблемы сохраняются, сократите код до минимального фрагмента, воспроизводящего импорт, и проверьте, что при деплое действительно устанавливается нужный пакет.