📌 Jupyter에서 numpy.dtype size changed 에러 해결 완전 정리

2025. 12. 28. 00:25·잡다한것/프로그램
728x90
반응형

 

(pandas / numpy 바이너리 충돌 원인과 가장 좋은 해결 방식)

 

1️⃣ 문제 상황

Jupyter Notebook에서 아래 코드처럼 pandas를 import하는 순간 에러가 발생했다.

import pandas as pd

에러 메시지:

ValueError: numpy.dtype size changed, may indicate binary incompatibility.
Expected 96 from C header, got 88 from PyObject

👉 코드 문제가 아니라, Python 환경(패키지 설치 상태) 문제다.


2️⃣ 에러의 정확한 원인

환경 확인 결과:

numpy   2.3.5   pypi_0    pypi
pandas  1.5.3   py311    conda

핵심 문제

  • numpy는 pip(PyPI) 로 설치됨
  • pandas는 conda 로 설치됨
  • 게다가 pandas 1.5.x는 numpy 2.x를 지원하지 않음

👉 즉,

conda 패키지 + pip 패키지 혼합 설치 + 버전 불일치
→ C 확장 모듈 바이너리 충돌
→ numpy.dtype size changed 발생


3️⃣ 이 에러가 왜 발생하는가? (쉽게 설명)

  • pandas는 내부적으로 C로 컴파일된 고속 모듈을 사용함
  • 이 모듈은 특정 numpy 버전 기준으로 컴파일됨
  • 그런데 실행 시 다른 numpy 버전이 로딩되면
    → 메모리 구조 크기가 달라짐
    → “기대하던 크기(96) ≠ 실제 크기(88)”
    → 즉시 에러 발생

📌 이건 Python 코드로는 절대 해결 불가, 환경 정리가 필요함


4️⃣ 가능한 해결 방법 비교 (중요)

방법설명안정성

❌ base에서 계속 섞어 쓰기 pip/conda 혼용 매우 나쁨
⚠️ base 환경 복구 numpy 다운그레이드 보통
✅ 새 conda env 생성 프로젝트별 환경 분리 최고 (추천)

👉 정답은 새 환경 분리


5️⃣ ✅ 가장 좋은 해결 방식 (권장)

👉 분석 전용 conda 환경 생성

① 새 환경 생성

conda create -n econ python=3.11 -y
conda activate econ

② 필수 패키지 설치

conda install -y numpy pandas matplotlib statsmodels openpyxl ipykernel

③ Jupyter 커널 등록

python -m ipykernel install --user --name econ --display-name "Python (econ)"

6️⃣ Jupyter에서 커널 선택 방법 (중요)

✔ Jupyter Notebook

  1. .ipynb 파일 열기
  2. 상단 메뉴 → Kernel
  3. Change Kernel → Python (econ) 선택

✔ JupyterLab

  1. 노트북 열기
  2. 상단 메뉴 또는 우측 상단
  3. Kernel → Change Kernel → Python (econ)

7️⃣ 커널이 제대로 연결됐는지 확인하는 코드

노트북 셀에 그대로 복붙

import sys, numpy, pandas

print("python:", sys.executable)
print("numpy :", numpy.__version__)
print("pandas:", pandas.__version__)

정상이라면:

  • sys.executable 경로에
    .../anaconda3/envs/econ/python.exe 포함
  • numpy / pandas import 에러 없음

8️⃣ (선택) 커널 목록 관리

커널 목록 확인

jupyter kernelspec list

econ 커널 삭제 (필요 시)

jupyter kernelspec uninstall econ

9️⃣ 왜 base 환경은 건드리지 말아야 하나?

  • base는 Anaconda 자체가 의존하는 핵심 환경
  • TensorFlow, PyTorch, 데이터 분석, 실험 코드가 섞이면
    → 언젠가 반드시 충돌
  • 한번 꼬인 base는 복구가 매우 어려움

📌 실무/개인 프로젝트 공통 정답

base = 최소 유지
프로젝트별 conda env 분리


🔚 최종 결론

✔ 이 에러는 코드 문제가 아니다
✔ pip + conda 혼합 설치 + numpy/pandas 버전 불일치가 원인
✔ 새 conda 환경 생성 + Jupyter 커널 분리가 가장 안전하고 확실한 해결책

데이터 분석, 회귀, 시각화, 경제 분석을 한다면
분석 전용 env 하나 만들어두는 것이 최고의 생산성 투자다.


 

728x90
반응형

'잡다한것 > 프로그램' 카테고리의 다른 글

intellij vim 상태에서 메모장에 복사 붙여넣기  (1) 2024.04.19
LG 그램 window 11 와이파이 안됨 이슈  (2) 2024.04.13
인터넷 악성코드 (멀웨어,애드웨어 ) 제거 방법  (0) 2020.12.15
'잡다한것/프로그램' 카테고리의 다른 글
  • intellij vim 상태에서 메모장에 복사 붙여넣기
  • LG 그램 window 11 와이파이 안됨 이슈
  • 인터넷 악성코드 (멀웨어,애드웨어 ) 제거 방법
nix-be
nix-be
  • nix-be
    NiX
    nix-be
  • 전체
    오늘
    어제
    • 홈
      • 책
        • 오브젝트
      • 성장
        • jpa Querydsl 정리
        • 코딩테스트
        • 스프링 핵심 원리 - 기본편
      • 인프라
        • linux
        • vmware
        • CI&CD
        • 네트워크
        • docker
      • 개발
        • spring boot
        • spring security
        • JPA
        • java
        • thymeleaf
        • 이슈
        • jquery
        • javascript
        • 안드로이드
        • MyBatis
        • git
        • 과제
      • DB
        • postgreSql
        • mysql
        • redis
      • 잡다한것
        • 프로그램
        • 일상 관련
        • 프로젝트-주차관리
      • 회사
        • 티
        • 피
  • 블로그 메뉴

    • 홈
    • 개발
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
nix-be
📌 Jupyter에서 numpy.dtype size changed 에러 해결 완전 정리
상단으로

티스토리툴바