이름 시작 부분에 하이픈이 있는 pip 종속성을 제거합니다.

이름 시작 부분에 하이픈이 있는 pip 종속성을 제거합니다.

-igalixir실수로 pip3 라는 패키지를 전역적으로 설치했습니다 . 제거하려고 하면 명령줄 옵션으로 pip3 uninstall -igalixir해석됩니다 . -igalixir나는 또한 작동하지 않는 따옴표로 그것을 둘러싸려고 노력했습니다.

pip3 list및 의 출력은 pip3 freeze다음과 같습니다.

$ pip3 list
Package    Version
---------- -------
-igalixir  1.0.19
click      6.7
pip        19.0.3
proxy.py   0.3
Pygments   2.2.0
requests   2.13.0
rollbar    0.13.18
setuptools 40.8.0
six        1.12.0
stripe     1.51.0
wheel      0.33.1

$ pip3 freeze
Could not parse requirement: -igalixir
click==6.7
proxy.py==0.3
Pygments==2.2.0
requests==2.13.0
rollbar==0.13.18
six==1.12.0
stripe==1.51.0

잘못된 패키지 이름이라면 애초에 어떻게 설치했는지도 잘 모르겠습니다. 어쨌든 내 시스템에서 이것을 깨끗하게 제거할 수 있습니까? 내 시스템에 임의의 파일이 남아 있는 것을 원하지 않으므로 제대로 제거하는 것이 좋습니다.

편집하다

다음과 같이 -igialixir로 용어를 분리하려고 했는데 더 이상 명령줄 옵션으로 해석되지 않지만 유효하지 않은 요구 사항이기 때문에 여전히 허용되지 않습니다.--pip3 uninstall -- -igalixir-igialixar

$ pip3 uninstall -- -igalixir
Invalid requirement: '-igalixir'

답변1

따옴표는 쉘에 의해 해석되고 제거되며 pip는 이를 수신하지도 않습니다.

GNU 유틸리티에서 이러한 경우를 처리하는 표준 방법은 이중 대시를 사용하는 것입니다.

sometool -somearg -otherarg -- -these -are -interpreted -as -file -names

나는 pip도 이 규칙을 사용할 수 있다고 생각합니다.

답변2

나는 비슷한 상황에 직면했다. 나에게 도움이 된 것은 다음 명령을 실행하여 설치 위치를 확인하는 것입니다.

pip show -- -pkgname

그런 다음 해당 폴더로 이동하여 문제가 있는 폴더를 제거했습니다(하이픈으로 나열되어 있지만 폴더 이름은 물결표 기호인 ~pkgname으로 시작됨).

내 경우에는 문제가 해결되었습니다.

관련 정보