2017-12-13 6 views
1

pip는 꼭 필요한 패키지를 제거하는 것만 같습니다! 패키지가 특정 버전의 패키지를 명시 적으로 선언하면 pip가 해당 패키지를 제거하지 못하는 것 같지만 그렇지 않습니다. 고려 :pip가 필요한 패키지를 제거하는 이유는 무엇입니까?

$ pip list | grep bar 
bar   1.0  
$ cat setup.py 

from setuptools import setup, find_packages 

def do_setup(): 
    setup(
     name='foo', 
     description='the foo package', 
     license='MIT', 
     version='1.0', 
     install_requires=[ 
      'bar==1.0', 
     ], 
    ) 

if __name__ == "__main__": 
    do_setup() 
$ pip install . 
Processing /Users/williamp/examples/pip/foo 
    Requirement already satisfied (use --upgrade to upgrade): foo==1.0 from file:///Users/williamp/examples/pip/foo in /Users/williamp/tmp/virt/lib/python2.7/site-packages 
Requirement already satisfied: bar==1.0 in /Users/williamp/tmp/virt/lib/python2.7/site-packages (from foo==1.0) 
$ cd ../bar 
$ pip install dist/bar-1.1.tar.gz 
Processing ./dist/bar-1.1.tar.gz 
Building wheels for collected packages: bar 
    Running setup.py bdist_wheel for bar ... done 
    Stored in directory: /Users/williamp/Library/Caches/pip/wheels/bf/d3/68/6016190bb2084f62ba1107c63bea948f4cfbb2c129fa0cb102 
Successfully built bar 
Installing collected packages: bar 
    Found existing installation: bar 1.0 
    Uninstalling bar-1.0: 
     Successfully uninstalled bar-1.0 
Successfully installed bar-1.1 

내가 패키지 foo는이 바 == 1.0에 명시 적으로 종속와 함께 설치되는 상황에서 바람 것 같다,하지만 핍 바 1.0을 제거하고 시스템이 불안정한 상태에서 지금이다. 거기에 몇 가지 간단한 구성 옵션을 내가 이것을 pip에 전달할 수 있습니까?

답변

0

Pip에는 종속성없이 라이브러리를 설치하는 플래그가 있습니다. 시도 ...

pip install --no-dependencies dist/bar-1.1.tar.gz 
+0

의존성없이 패키지를 설치하고 싶지 않습니다! 모든 의존성이 설치되도록 pip에 의존하고 싶습니다. –

+0

당신이 찾고있는 것을 달성하기위한 깨끗한 방법이없는 것처럼 보입니다. 이것은 pip가 패키지와 같은 이름의 의존성을 설치하려고한다는 사실과 관련이있는 것 같습니다. https://github.com/pypa/pip/issues/304. 그들이 pip check를 실행해야 할 필요가있을 것입니다. –

1

아니,하지만 당신은 수동으로 pip check을 실행하여 확인할 수 있습니다 :

$ pip check 
No broken requirements found. 
$ pip uninstall pytz 
Uninstalling pytz-2017.3: 
    ... 
Proceed (y/n)? y 
    Successfully uninstalled pytz-2017.3 
$ pip check 
Django 2.0 requires pytz, which is not installed. 

종속성 추적이 잠시 동안 지금 주사위와 a major issue을하고있다. 결국 해결 될 것입니다.