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
# 가상환경 연결 및 시작 실패
[pyzmq]
- ZeroMQ 메시징 라이브러리의 Python 바인딩으로, 분산 시스템을 위한 고성능 비동기 메시징 라이브러리
- ZeroMQ
- 소켓 프로그래밍을 추상화하여,
- 개발자가 네트워크 프로그램을 로컬 프로그램을 다루듯이 손쉽게 개발할 수 있게 함
- PyZMQ 사용 시
- 복잡한 네트워크 통신 및 동시성 패턴을 단순화하면서,
- 효율적인 메시지 교환 시스템을 구축할 수 있음
C:\Users\USER\AppData\Local\Programs\Python\Launcher\%ASI%\bin와 %PATH%pip install ipykernel 재설치But
pip install jupyter로 설치했기 때문에,아래는 문제 확인, 테스트, 해결의 과정을 나열한 것
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 포트에서 서버가 실행됨.
위 과정을 통해 해결한 문제
커널 시작 시 유의점 (해야 할 것!)
.\analysis_env\Scripts\Activate.ps1