주피터 노트북은 웹 기반 인터페이스에서 실행되며, 일반적인 명령줄 환경과는 다름.

 

노트북 환경은 사용자가 직접 명령줄 인자를 입력할 수 있는 방식으로 설계되지 않았다.

 

대신 Jupyer notebook 은 sys.argv 와 같은 명령줄 인자를 자동으로 설정해줌.

 

이로 인해 사용자가 의도한 명령줄 인자를 직접 전달하기 어렵다. (하지만 일반 파이썬 환경에서는 명령줄 인자를 직접 전달하고 파싱할 수 있다.)

 

argparse 라이브러리는 기본적으로 sys.argv를 파싱해서 사용한다.

 

주피터 환경에서는 이 sys.argv가 이미 노트북 실행을 위한 인자들로 채워져 있어, 사용자가 의도한 인자를 파싱할 수 없게 됨.

 

이러한 특성들로 인해, 주피터 환경에서 argparse를 일반적인 방식으로 사용하려고 하면 "unrecognized arguments" 오류가 발생하거나, 예상치 못한 동작을 하게 된다.

 

이를 해결하는 방법은 다양하다.

  1. sys.argv를 직접 수정하는 방법
import sys
sys.argv = [sys.argv[0]]  # 명령줄 인자를 초기화

 

 

  1. 주피터 노트북에서 직접 값을 설정하는 방법:
class Args:
    def __init__(self):
        self.q = 'Google'
        self.max_results = 25

args = Args()

'Programming Language > Python' 카테고리의 다른 글

Asyncio 와 Aiohttp 정리  (0) 2024.08.14
yield 에 대해서  (0) 2024.08.06
언패킹 (Unpacking)  (0) 2024.07.10

+ Recent posts