Jupyter Kernel 연결 및 시작 에러 해결

XTHK·2025년 12월 10일

Anaysis

목록 보기
23/25

발생 문제

Failed to start the Kernel 'analysis_env (Python 3.11.9)'.

View Jupyter log for further details. listen EFAULT: bad address in system call argument 0.0.0.0:9000
# 가상환경 연결 및 시작 실패

문제 해결 시도

  • Python 환경 삭제 및 재설치
  • 기존 커널 버전(3.11) down grage to 3.10
  • pyzmq 삭제 및 재설치
    • 실제로 누군가는 이 패키지 재설치 후 문제가 해결되기도 함
    • 즉, 메시징 라이브러리가 꼬이거나(버전 등의 문제로) 통신의 문제로 발생할 경우 이 방법이 효과적일 수 있음

[pyzmq]

  • ZeroMQ 메시징 라이브러리의 Python 바인딩으로, 분산 시스템을 위한 고성능 비동기 메시징 라이브러리
    • ZeroMQ
      • 소켓 프로그래밍을 추상화하여,
      • 개발자가 네트워크 프로그램을 로컬 프로그램을 다루듯이 손쉽게 개발할 수 있게 함
  • PyZMQ 사용 시
    • 복잡한 네트워크 통신 및 동시성 패턴을 단순화하면서,
    • 효율적인 메시지 교환 시스템을 구축할 수 있음
  • GPT의 조언
    • PATH 환경 변수에 ‘;’(경로 마지막에) 또는 ‘;;’가 포함된 경우 제거
      • GitHub Issue(#1698, #342 등)에서 나오는 경고에 따른 조치
    • PATH 환경 변수에서 문제 발생 가능성이 큰 경로 삭제
      • 사용자 PATH: C:\Users\USER\AppData\Local\Programs\Python\Launcher\
      • 시스템 변수 PATH: %ASI%\bin%PATH%
        • Python 확장이 로딩될 때 에러를 만드는 항목임
    • 가상환경에 pip install ipykernel 재설치
    • 가상환경 삭제 및 재설치

발생 원인 (본질적 문제점)

  • ipynb는 jupyter notebook 위에서 작동하므로 설치가 필수
    • 또한 이 서버가 실행환경에 띄워진 상태로 코드를 돌려야 작동 가능

But

  • jupyter notebook이 제대로 설치되지 않고, 또한 연결되지 않았음
    • powershell 창에서pip install jupyter로 설치했기 때문에,
    • ipynb 환경에 notebook 서버가 연결되지 않았음
    • 또한 jupyter notebook의 '껍데기 파일'만 존재하고
    • 내부적으로 필요한 파일과 환경들이 설치되지 않았음

문제 해결

  • jupyter install 시 제대로 설치되지 않았던 jupyter notebook 항목들을 일일이 설치
  • 환경변수에 jupyter 환경 등록하여, 시스템에서 접근 및 연결이 가능해지도록 함
  • vscode(cursor) 환경에서 jupyter notebook 연결

아래는 문제 확인, 테스트, 해결의 과정을 나열한 것

1. 문제 시작: Jupyter 명령어가 실행되지 않음

# 처음 CMD에서 아래 명령을 실행했지만,
jupyter notebook --no-browser --ip=0.0.0.0 --port=9000

▶ 다음 오류가 발생
- 'jupyter'은 내부 또는 외부 명령, 실행할 수 있는 프로그램 또는 배치 파일이 아닙니다.
-, Windows가 jupyter 명령을 찾지 못한다는 뜻

2. PATH에 Jupyter 추가

# 아래 명령 수행
dir "C:\Users\USER\AppData\Roaming\Python\Python311\Scripts"

▶ jupyter.exe, jupyter-notebook.exe 는 존재했지만 
   환경 변수 PATH에 등록되지 않은 상태

- 따라서 아래 경로를 시스템 PATH 또는 사용자 PATH에 추가
- C:\Users\USER\AppData\Roaming\Python\Python311\Scripts


- 이후 CMD를 껐다가 다시 켜고, 다음 명령으로 확인
- where jupyter

▶ 정상적으로 경로가 출력되면 환경 변수 설정은 완료

3. Jupyter Notebook 수동 실행 테스트

# 다음 명령으로 직접 실행
"C:\Users\USER\AppData\Roaming\Python\Python311\Scripts\jupyter-notebook.exe" --no-browser --ip=127.0.0.1 --port=8888

4. 브라우저에서 Notebook이 뜨지 않는 문제

# Jupyter 서버가 정상 기동되어도 브라우저 화면에서 노트북 목록이 보이지 않고
# 상단만 나온 채로 비어 있는 화면이 나오기도 함

▶ 이 문제는 Jupyter 서버 자체는 정상 동작하나
   VSCode 또는 브라우저에서 올바른 경로를 열지 않아서 발생한 문제

# 정상 주소는 다음과 같음
- http://127.0.0.1:8888

5. VSCode에서 Jupyter 서버가 인식되지 않는 문제

# VSCode에서 Jupyter 명령을 입력하려고 했지만
# 아래 명령들이 검색 목록(ctrl+shift+p)에 나타나지 않았음
- Jupyter: Specify Jupyter Server URI
- Python: Specify Jupyter Server for connections

▶ 이 문제는 VSCode의 명령 팔레트 검색창에 문장을 입력한 것이지,
   항목 자체가 비활성화된 것이 아님

# 정상적으로 접근해야 하는 명령은 다음 두 개
- Jupyter: Select Jupyter Server
- Python: Select Jupyter Server

▶ 이 명령을 실행하면 VSCode가 로컬 또는 원격 Jupyter 서버를 선택할 수 있음

6. VSCode가 임의의 포트(9005)로 Jupyter를 생성하는 문제

# VSCode는 자체적으로 내부 Jupyter 서버를 여는 경우가 존재
# 이때 9005 같은 이상한 포트를 사용하게 됨
netstat -ano | findstr :9005 

▶ 위 명령어를 수행해도 아무 프로세스가 안 뜨는 것은
   VSCode가 내부 프로세스로 실행하기 때문입니다.

# 이를 해결하려면 반드시 “Local Jupyter Server”를 수동으로 선택해야 함

VSCode → Ctrl+Shift+P
→ Jupyter: Select Jupyter Server
→ Local / Default Jupyter Server 선택

▶ 이렇게 하면 VSCode가 자체 서버를 띄우지 않고
   이미 실행 중인 8888 서버에만 연결

7. 토큰 입력 없이 자동 실행되도록 설정

# 매번 토큰을 입력하는 것이 불편하다면
# Jupyter 설정 파일을 수정해야 함

1) 설정 파일 생성
jupyter notebook --generate-config

▶ 출력 문구에 경로가 표시됩니다.
  보통: C:\Users\USER\.jupyter\jupyter_notebook_config.py

2) 설정 파일에 아래 내용을 추가
c.NotebookApp.token = ''
c.NotebookApp.password = ''
c.NotebookApp.open_browser = False
c.NotebookApp.ip = '127.0.0.1'
c.NotebookApp.port = 8888

▶ 이제 Jupyter Notebook을 켜면 토큰 없이 바로 접속 가능합니다.

8. Jupyter Notebook 자동 실행용 배치 파일 만들기

# 매번 CMD를 열기 귀찮다면 배치 파일을 하나 만들어 두어야 함
notepad %USERPROFILE%\start_jupyter.bat

# 파일 내용:
@echo off
jupyter notebook

▶ 더블 클릭하면 즉시 8888 포트에서 서버가 실행됨.

✅ 정리

위 과정을 통해 해결한 문제

  • Jupyter 명령어 인식 안됨 (PATH 문제)
  • 브라우저에서 노트북이 안 뜨는 문제
  • VSCode에서 Jupyter 명령이 검색되지 않는 문제
  • VSCode가 임의 포트(9005)에서 자체 서버를 띄우는 문제
  • 매번 토큰 입력해야 하는 문제
  • Jupyter Notebook을 안정적으로 8888 포트에 고정하는 방법

✅ 최종 상태

  • Jupyter Notebook은 8888 포트에 고정
  • 토큰 없이 자동 접속
  • VSCode는 항상 로컬 서버(8888)에 연결
  • 별도 배치 파일로 간편 실행

커널 시작 시 유의점 (해야 할 것!)

  • 터미널(jupyter 터미널 창)에 jupyter notebook 실행시킨 후 작업
  • powershell에서 analysis_env 환경 활성화시키고 실행
    • .\analysis_env\Scripts\Activate.ps1
  • 끝나면 서버 종료!
profile
Analyse the world

0개의 댓글