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
- .ipynb 파일 열기
- 상단 메뉴 → Kernel
- Change Kernel → Python (econ) 선택
✔ JupyterLab
- 노트북 열기
- 상단 메뉴 또는 우측 상단
- 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 |