2017-11-20 2 views
0

main이라는 대형 프로젝트 용 라이브러리를 생성하고 있습니다.의존성의 다른 필수 버전에서의 Python/pip의 동작 이해

  • mainlib1에 따라, lib2==1.0.0에 따라 달라집니다 : 나는 문제가 다음과 같은 종속 구조가 존재하는 경우 파이썬/핍의 행동을 이해하는 데 문제가 있습니다.
  • mainlib2==2.0.0에 따라 다릅니다. 이것은 내 주요 프로젝트와 같은 혼란의 비트를 만들어

    main 
    - lib2==2.0.0 
    - lib1==x.x.x 
        - lib2==1.0.0 
    

    트리로 표시

아직 주요 프로젝트의 종속성의 또 다른 하나는 이전에 의존 lib2의 V2가 제공하는 API에 따라 달라집니다 버전은 lib2입니다.

이 경우 Python/pip의 동작은 무엇입니까? 두 라이브러리 모두 설치 및 유지됩니까? 이 버전 충돌을 정상적으로 해결할 방법이 있습니까?

은 (npm, 예를 들면, 라이브러리의 두 버전이 설치되고 정확한 버전이 적절한 의존 라이브러리가 필요하다.) 대부분의 시간을 특정 모듈에 대한 의존 라이브러리에 따라 달라질

+0

[pip로 여러 버전의 패키지 설치] (https://stackoverflow.com/questions/6570635/installing-multiple-versions-ofa-a-package-with-pip) – scharette

답변

0

모듈 버전을 빌드하는 동안 사용됩니다.

예를 들어 Spacy를 설치 한 얼마 전에이 문제가 발생했습니다. 내 프로젝트는 Numpy --version 1.0 (예로서)을 사용하고있었습니다. 그러나 Spacy는 Numpy --version 2.0을 사용했습니다.

전체 프로젝트를 실행하기 위해 별도의 환경을 사용 했으므로 동일한 환경에서 실행되었습니다. 해당 환경의 모든 모듈을 설치했는데 Numpy가 Spacy 전에 설치되었고 버전이 사용 된 Numpy 버전보다 오래된 것으로 나타났습니다. Spacy에 의해 numpy 버전을 덮어 쓰면 버전 날짜가 최신 버전을 사용하는 모듈로 업데이트됩니다 (적어도 시도 할 때까지).

확실한 답을 제공하지 못했지만 내가 본 것에서 통찰력을 공유했을 수도 있습니다.