UFO ET IT

pip 패키지에 대한 종속성 트리를 표시하는 방법이 있습니까?

ufoet 2020. 11. 17. 21:29
반응형

pip 패키지에 대한 종속성 트리를 표시하는 방법이 있습니까?


여러 패키지 종속성이있는 프로젝트가 있으며 주요 요구 사항은 requirements.txt. 내가 호출 pip freeze하면 현재 설치된 패키지를 일반 목록으로 인쇄합니다. 나는 또한 다음과 같은 의존 관계를 얻는 것을 선호합니다.

Flask==0.9
    Jinja2==2.7
    Werkzeug==0.8.3

Jinja2==2.7

Werkzeug==0.8.3

Flask-Admin==1.0.6
    Flask==0.9
    Jinja2==2.7
    Werkzeug==0.8.3

목표는 각 특정 패키지의 종속성을 감지하는 것입니다.

Werkzeug==0.8.3
    Flask==0.9
    Flask-Admin==1.0.6

그리고 이것들을 내 현재 requirements.txt. 예를 들어,이 입력의 경우 :

Flask==0.9
Flask-Admin==1.0.6
Werkzeug==0.8.3

나는 얻고 싶다 :

Flask==0.9
    Jinja2==2.7
Flask-Admin==1.0.6
Werkzeug==0.8.3

설치된 pip 패키지의 종속성을 표시하는 방법이 있습니까?


다음을 살펴보아야합니다 pipdeptree.

$ pip install pipdeptree
$ pipdeptree -fl
Warning!!! Cyclic dependencies found:
------------------------------------------------------------------------
xlwt==0.7.5
ruamel.ext.rtf==0.1.1
xlrd==0.9.3
openpyxl==2.0.4
  - jdcal==1.0
pymongo==2.7.1
reportlab==3.1.8
  - Pillow==2.5.1
  - pip
  - setuptools

requirements.txt직접 지시 한대로 파일을 생성하지 않습니다 . 그러나 소스 (파이썬 코드의 255 줄)는 필요에 따라 비교적 쉽게 수정할 수 있어야합니다. 또는 대신 사용할 수 있습니다 (@MERose가 pipdeptree 0.3 README에 표시됨).

pipdeptree --freeze  --warn silence | grep -P '^[\w0-9\-=.]+' > requirements.txt

0.5 버전은 pipdeptree또한 --json가독성이 떨어지는 대신 기계 구문 분석이 더 쉬운 옵션을 사용하여 JSON 출력을 허용 합니다.


yolk 패키지에 대한 종속성을 표시 할 수 있습니다.

  • 통해 설치되었습니다 setuptools
  • 종속성 정보를 포함하는 메타 데이터와 함께 제공

    $ yolk -d Theano
    Theano 0.6.0rc3
      scipy>=0.7.2
      numpy>=1.5.0
    

참고 URL : https://stackoverflow.com/questions/17194301/is-there-any-way-to-show-the-dependency-trees-for-pip-packages

반응형