ModuleNotFoundError: No module named 'google'

2025년 12월 3일·9개 메시지

디스코드 봇을 호스팅 환경에서 실행할 때 ModuleNotFoundError: No module named 'google' 오류가 발생하는 원인과 해결 절차를 정리했다. 특히 from google import genai 계열의 import에서 생기는 문제를 중심으로, 디스호스트 같은 호스팅 패널에서 패키지를 올바르게 설치하고 확인하는 방법을 다룬다.

증상

서버 콘솔에서 봇을 시작할 때 다음과 같은 예외가 발생한다.

ModuleNotFoundError: No module named 'google'

코드 상단에 from google import genai 또는 from google.genai import types 같은 구문이 있을 때 주로 발생한다. 로컬에서는 정상 동작하지만 호스팅 환경에서만 발생하는 경우가 많다.

원인

  • 런타임 환경에 해당 패키지(google 네임스페이스)가 설치되어 있지 않음.
  • requirements.txt가 호스팅 환경에서 사용되지 않거나 위치가 잘못되어 설치가 누락됨.
  • 호스팅 패널이 별도의 입력 필드(예: Additional Python packages)를 통해 패키지를 등록해야 하는 경우 해당 필드에 패키지를 추가하지 않음.
  • 패키지명(pip 이름)과 코드에서 사용하는 import 경로(namespace)가 혼동되어 올바른 패키가 설치되지 않음.
  • 다른 Python 버전 / 가상환경에 설치되어 실제 실행 중인 인터프리터에서 접근 불가.

해결 방법

1단계: 로컬/서버에서 설치 상태와 import 경로 확인

  1. 현재 환경에서 패키지가 설치되어 있는지 확인:
pip show google-genai
pip list | grep google
  1. Python에서 직접 import 확인:
python -c "import importlib; print(importlib.util.find_spec('google'))"
python -c "from google import genai; print(genai)"

find_spec가 None을 반환하거나 import 시 에러가 나면 설치가 되어 있지 않거나 네임스페이스가 다름.

  1. 필요하면 직접 설치:
pip install google-genai==1.52.0
# 또는 최신 버전
pip install google-genai

requirements.txt 예제:

discord.py==2.3.2
google-genai==1.52.0
python-dotenv==1.0.0

requirements.txt가 프로젝트 루트에 있고 배포 시스템이 이를 자동으로 설치하는지 확인.

2단계: 호스팅(디스호스트) 패널 설정 점검

  1. 패널의 시작 옵션에서 requirements.txt 파일 경로가 올바른지 확인. 파일이 프로젝트 루트에 있어야 자동 설치가 정상 동작함.
  2. 패널에 "Additional Python packages" 같은 별도 입력 필드가 있다면 google-genai==1.52.0 을 명시적으로 추가하고 앱을 재시작.
  3. 재시작 후 콘솔 로그에서 pip install -r requirements.txt 또는 개별 패키 설치 로그가 출력되는지 확인. 설치 오류가 있으면 로그를 확인해 의존성 충돌을 해결.
  4. 실행 중인 Python 버전과 pip가 동일한지 확인:
which python
which pip
python -V
pip --version

호스팅 환경에서 가상환경을 사용하는 경우 해당 가상환경에 패키지가 설치되었는지 확인 필요.

추가 팁: 설치 후 호스팅 콘솔에서 간단한 검사 스크립트를 실행하여 import가 가능한지 확인:

# check_import.py
try:
    from google import genai
    print('ok')
except Exception as e:
    print('error', e)

이 파일을 실행해 결과를 확인하면 문제 원인을 좁힐 수 있다.

마무리

ModuleNotFoundError: No module named 'google'는 대부분 패키지 미설치나 패널 설정 누락에서 발생한다. requirements.txt 위치와 호스팅 패널의 패키지 입력 필드를 확인하고, 설치 후 간단한 import 검사로 정상 동작을 확인하면 디스코드 봇을 디스호스트 환경에 안정적으로 배포할 수 있다.