규도자 개발 블로그

pip 모든 패키지 삭제하기 + xargs명령어 본문

Python/Python

pip 모든 패키지 삭제하기 + xargs명령어

규도자 (gyudoza) 2021. 12. 15. 23:33

pip 모든 패키지 삭제하기 + xargs명령어

가끔씩 개발을 하다보면 실수로 프로젝트 venv환경이 아닌 System Interpreter로 설치된 python에 패키지를 설치해버릴 때도 있고, 패키지 버전을 바꿔야 하는데 의존성으로 인해 여러개의 패키지가 깔려있는 상태에서 같이 버전을 바꿔줘야 하는 둥 pip로 설치한 모든 패키지를 전부 싹 밀고 다시 패키지를 설치하는 게 속시원할 때가 있다. 그때 쓰면 좋은 명령어다.

$ pip freeze | xargs pip uninstall -y

여기서 xargs라는 조금은 생소한 명령어가 있는데 명령어 출력을 다른 명령어의 인자값으로 전달하는 함수이다. 고로 pip freeze명령어를 통해 조회된 모든 패키지 리스트들에 대해서 각 줄마다 pip uninstall -y {package}형태로 실행된다고 이해하면 편하다. 간단한 예로

$ pip freeze | xargs echo

이렇게 uninstall에 해당되는 부분을 echo로 바꿔보면 이해가 쉽다. 뒤에 >> 등으로 스트림을 조절하면 파일에 쓸 수도 있고 알고 나면 굉장히 편리한 기능이라고 할 수 이따. 끗.

 

Comments