728x90

tqdm을 이용해서 for문이 실행될 때마다 실행결과를 확인하기 위해 print을 실행한다면 VSCode나 Jupyter에서 사진과 같이 출력된다. 이때 깔끔하게 출력하는 방법에 대해 알아보자. tqdm 기초는 여기를 보면 된다.

Jupyter와 VSCode에서 깔끔하게 출력되지 않음

Jupyter와 VSCode에 대해 각각 설명하겠다. 

일단 결론부터 말하자면 다음과 같은 코드를 사용하면 된다.

from tqdm.auto import tqdm

 

 

Jupyter에서 tqdm 사용방법


tqdm 라이브러리 내부의 notebook 모듈을 사용하면 간단하게 해결된다. 

from tqdm.notebook import tqdm

import time

for i in tqdm(range(100)):
    print(1)
    time.sleep(0.1)

tqdm은 위에 유지하며 출력결과만 밑에 나온다.

 

VSCode에서 tqdm 사용방법


VSCode 같은 경우에도 동일한 코드를 작성하면 된다.

from tqdm.notebook import tqdm

import time

for i in tqdm(range(100)):
    print(1)
    time.sleep(0.1)

 

하지만, tqdm을 바로 실행하면 오류가 생긴다.

ImportError: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html

이 오류에 대해서는 다음 코드를 작성하면 된다.

pip install ipywidgets

설치 이후에는 잘 출력되는 것을 볼 수 있다.

 

 

결론


위의 코드를 보면 항상 tqdm.notebook을 사용하면 괜찮은 것처럼 보이지만 항상 그렇지만은 않다. 그래서 나는 프로그램마다 다른 것을 사용하는데 그에 대해 설명하려고 한다. 

VSCode 사용 시

VSCode를 사용할 땐, tqdm.auto 또는 tqdm을 사용한다.  거의 tqdm.notebook은 사용하지 않는다. 그 이유는 notebook은 jupyter를 위한 모듈이므로 굳이 notebook을 사용하지 않는다.

Jupyter 사용 시

Jupyter을 사용할 땐, tqdm.auto 또는 tqdm.notebook을 사용하며, tqdm은 사용하지 않는다.  그 이유는 tqdm은 기본적으로 VSCode를 위한 모듈이므로 사용하지 않는다. 하지만 tqdm 실행결과를 기록해야 한다면 tqdm을 사용한다. 그 이유는 tqdm.notebook은 kernel을 종료하면 실행결과가 사라진다는 것을 명심해야 한다.

728x90