"오류 : 옵션-단일 버전 외부 관리가 인식되지 않음"은 무엇을 의미합니까?


102

varions 패키지 ( 및 포함 ) 를 지정할 error: option --single-version-externally-managed not recognized때 갑자기 오류가 발생하기 시작한 것 같습니다 . 이전에는이 ​​오류를 본 적이 없지만 이제는 아무것도 변경되지 않은 travis-ci 빌드에서도 표시됩니다.pip installPyObjCastropy

이 오류는 오래된 배포를 나타 냅니까? 또는 일부 잘못 지정된 옵션 setup.py? 아니면 완전히 다른 것?

답변:


84

새로운 업데이트:

최신 버전의 setuptools. 여전히 오류가 발생하면 설치하십시오 wheel.

pip install -U setuptools
pip install -U wheel

원래 답변 / 자세한 내용 :

--single-version-externally-managed Yum 또는 Apt와 같이 필요한 경우 호스트의 패키지 관리자가 쉽게 관리 할 수있는 Python 패키지를 생성하도록 setuptools 모듈에 지시하는 Python 패키지에 사용되는 옵션입니다.

이 메시지가 표시되면 이전 버전의 setuptools 또는 Python이있을 수 있습니다. 최신 버전의 setuptools이며 이전 버전과 호환되는 Distribute를 사용해보십시오. 이러한 패키지는 이미 가지고 있다고 예상 할 수 있습니다.

https://pypi.python.org/pypi/distribute

편집 :이 시점에서 배포는 메인 setuptools프로젝트에 병합되었습니다 . 최신 버전의 setuptools. @wynemo가 지적했듯이, --egg배포 용 시스템 패키지를 만들지 않으려는 수동 설치를 수행하는 사람들에게 더 적합하기 때문에 옵션을 대신 사용할 수 있습니다 .


1
표시된 버전을 추가 할 수 있습니까? 나는 setuptools 0.6을 사용하고 있으며 pip는 최신 버전에 대해 알지 못합니다. distribute제대로 들리지만 가져올 수 없습니다 ...
keflavich

당신은하지 않습니다 import distribute. Distribute는 드롭 인 대체이며 동일한 모듈 이름을 갖습니다. import setuptools그것도 필요합니다.
Kelketek 2013 년

해야 할 일은 둘 다 설치 한 경우 setuptools가 배포를 재정의하지 않는지 확인하는 것입니다. pip로 배포를 설치 한 다음 setuptools를 제거해야합니다. 나는 그것이 효과가 있다고 생각합니다.
Kelketek 2013 년

17
추가해야합니다 : 더 이상 배포를 사용하지 마십시오. Distribute는 setuptools 프로젝트로 다시 병합되었으므로 이제는 setuptools모두를 지배 할 하나만 있습니다.
Iguananaut 2015 년

1
@johntex,이 답변은 배포 및 설정 도구가 아직 병합되지 않았을 때 1 년 이상 전에 작성되었습니다 (또는 포함 된 경우 들어 본 적이 없음). 지금 업데이트했습니다.
Kelketek 2014 년

136

--egg옵션 추가

pip install --egg SCons

pip버전 1.4.1을 사용합니다.


10
그것이 실제로 도움이 된 유일한 해결책이었습니다. 최근 pip 및 setuptools가 이미 설치되었지만이 오류가 싫습니다.
Michael

나는 pyenv 에이 문제가 있었고 이것이 고쳤습니다.
glaucon

13
누군가이 옵션의 의미와 이것이 작동하는 이유를 자세히 설명 할 수 있습니까?
kawing-chiu

4
이것이 저에게 효과가 있었지만 "DEPRECATION : --egg는 더 이상 사용되지 않으며 앞으로 제거 될 것입니다.이 플래그는 pip의 많은 부분과 상호 배타적이며 실제로 사용하면 pip의 관리 기능이 무효화됩니다. 설치 과정. "
natersoz

2
no such option: --egg핍 18.1
gdw2

45

설치 wheel하면 최근에이 문제가 해결되었습니다 pip(8.1.2 사용).

pip install wheel

원하는 경우 되돌려 편집 할 수 있습니다. 문제 없습니다. 정확한 버전 pipwheel수정 된 위치 를 알고 있다면 다시 손상 될 경우를 대비하여 언급 할 가치가 있습니다. 또한 대답은 어쨌든 무슨 일이 일어나고 있는지 설명하지 않습니다.
anatoly techtonik

@sparrowt에서이 플러스 대답은 내 문제 해결
데이비드 Poxon

7

다음과 같이 setuptools를 업그레이드하십시오.

pip install --upgrade setuptools


5

이 문제가 발생했습니다. 내 pip 캐시의 파일 권한에 문제가 있음이 밝혀졌습니다.

pip 출력의 맨 처음에 다음과 같은 메시지가 표시되면

The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

같은 문제가있을 수 있습니다. pip 캐시 (예 :)에 대한 적절한 파일 권한 chown -R $(whoami) /home/ubuntu/.cache/pip이 있는지 확인하거나 UNIX를 사용하는 경우 XDG_CACHE_HOMEenv var를 사용하여 pip 캐시 위치를 소유 한 폴더로 설정할 수 있습니다 .


놀랍게도 저에게도 효과가있었습니다 ( sudo패키지를 설치하는 데 사용 하는 경우 -H플래그 를 추가해야합니다 )! 캐시와 명령 옵션 오류 사이의 연결이 무엇인지는 알 수 없지만 신경 쓰지 마십시오.
Delgan

1

위의 해결책을 시도했습니다. 그러나 다음을 수행하기 전까지 만 문제를 해결할 수 있습니다.

sudo pip3 install -U pip (python3의 경우)


0

하나의 파이썬 패키지를 업그레이드하려고 할 때도 내 macbook 에이 문제가 있습니다. OS X에서 pip 버전을 확인했는데 너무 오래되었습니다 : 1.1. 나는 cmd를 사용하여 pip를 1.5.6으로 업그레이드합니다.

easy_install -U pip

그러면이 오류가 수정됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.