pipdeptree
Python 환경에 설치되어 있는 패키지와 그 버전을 확인할 때는 pip list, pip freeze 명령을 사용하곤 한다.
pip list
pip freeze
간단히 패키지 정보를 확인하기엔 충분하지만 패키지 간의 의존성 등에서 충돌이 발생했을 때는 정보가 부족한 감이 있다.
이럴 때 패키지 간 의존성을 tree 형식으로 표시하는 pipdeptree를 사용하면 좋다.
설치
간단히 pip 명령을 이용해 설치할 수 있다.
pip install pipdeptree
사용법
1. 환경 내 모든 패키지 의존성 확인
옵션 없이 사용하면 모든 라이브러리에 대한 의존성 tree를 출력한다.
pipdeptree
위의 사진을 통해 launchpadlib라는 패키지는 httplib2, keyring, lazr.restfulclient 등의 패키지를 요구한다는 것을 알 수 있다.
또한 충돌 가능성 있는 패키지에 대한 정보도 확인할 수 있다.
2. 특정 패키지에 대한 의존성 확인
-p 옵션을 주어 확인할 패키지를 지정한다. 여러 패키지를 확인하고 싶을 때 ,(쉼표)로 구분하여 나열한다.
pipdeptree -p <PACKAGE>,<PACKAGE>,<PACKAGE>……
# -p, -packages : 패키지 지정
# 예시
pipdeptree -p launchpadlib,attrs
3. 특정 패키지를 의존하는 패키지 찾기
2번의 경우 어떤 패키지가 어떤 패키지를 의존하는지를 확인했다면, 역으로 어떤 패키지를 어떤 패키지가 의존하는지 확인할 필요도 있다. 즉, 이 패키지가 대체 어떤 패키지 때문에 설치되었는지 알고 싶다면 -r 옵션을 주어 확인할 수 있다.
pipdeptree -r -p <PACKAGE>
# 예시
pipdeptree -r -p SecretStorage
참고 문서
https://pypi.org/project/pipdeptree/
https://www.lesstif.com/python/python-pip-pipdeptree-129008074.html