pip 설치 /usr/local/opt/python/bin/python2.7 : 잘못된 인터프리터 : 해당 파일 또는 디렉토리 없음


90

나는 거래가 무엇인지 모르지만 아무데도 가지 않는 스택 오버플로 솔루션을 따르고 있습니다. 제발 도와 주 시겠어요?

  Monas-MacBook-Pro:CS764 mona$ sudo python get-pip.py
    The directory '/Users/mona/Library/Caches/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 '/Users/mona/Library/Caches/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.
    /tmp/tmpbSjX8k/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
    Collecting pip
      Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB)
        100% |████████████████████████████████| 1.1MB 181kB/s 
    Installing collected packages: pip
      Found existing installation: pip 1.4.1
        Uninstalling pip-1.4.1:
          Successfully uninstalled pip-1.4.1
    Successfully installed pip-7.1.0
    Monas-MacBook-Pro:CS764 mona$ pip --version
    -bash: /usr/local/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory

답변:


168

home-brew를 사용하여 OS X 10.10에 2.7을 설치했는데 새 설치에 sym 링크가 없습니다. 나는 달렸다

brew link --overwrite python

Homebrew에서 파이썬을 심볼릭 링크하는 방법에서 언급했듯이 ? 그리고 그것은 문제를 해결했습니다.


6
그것은 나를 구했습니다. FWIW, El Capitan에서 Python을 수정하려면 세 단계를 수행해야했습니다. brew install python; brew linkapps python; 양조 링크 --overwrite python
Saish nov.

그 반대로하는 방법?
bubakazouba 2016 년

3
reverse : brew unlink python
Anders B

1
이것에 추가하십시오. 어떤 이유로 든 "xcode-select --install"을 실행해야한다는 것을 알았습니다. 내가 그렇게 할 때까지 "brew 재설치 python"은 작동하지 않습니다. 제 경우에는 마이그레이션 도우미를 사용하여 한 물리적 컴퓨터에서 다른 컴퓨터로 이동했습니다. 이 두 가지 후에 모든 것이 해결되었고 pip3가 작동했습니다.
chrisallick

Python은 이미 나를 위해 올바르게 연결 pip3 install --upgrade pip되어 있었으며 @Excalibur가 더 아래로 주석 방식으로 지적한 대로 도움이 되었습니다.
retrovertigo

56

두 개의 python 설치 또는 두 개의 pip 설치가 있고 그중 하나가 부분적으로 제거되었다고 생각합니다.

왜 사용 sudo합니까? 이상적으로는 루트를 사용하는 대신 사용자 계정에서 모든 것을 설치하고 실행할 수 있어야합니다. 루트 계정과 로컬 계정을 함께 사용하면 권한 문제가 발생할 가능성이 더 큽니다 (예 : "부모 디렉토리는 현재 사용자가 소유하지 않음"에 대한 경고 참조).

이것을 실행하면 무엇을 얻습니까?

$ head -n1 /usr/local/bin/pip

이것은 어떤 파이썬 바이너리 pip가 사용하려고 하는지 보여줄 것입니다 . 가리키는 /usr/local/opt/python/bin/python2.7경우 다음을 실행하십시오.

$ ls -al /usr/local/opt/python/bin/python2.7

"No such file or directory"라고 표시되면 pip는 제거 된 python 바이너리를 사용하려고합니다.

다음으로 시도해보십시오.

$ which python
$ which python2.7

실제로 작동하는 파이썬 바이너리의 경로를 확인합니다.

pip가 어딘가에 성공적으로 설치된 것처럼 보이므로 /usr/local/bin/pip.NET에서 더 높은 이전 pip 설치의 일부일 수 있습니다 PATH. 이를 테스트하려면 다음 pip과 같이 작동하지 않는 바이너리를 이동해 볼 수 있습니다 (필요할 수 있음 sudo).

$ mv /usr/local/bin/pip /usr/local/bin/pip.old

그런 다음 pip --version명령을 다시 실행 하십시오. 바라건대 올바른 버전을 선택하고 성공적으로 실행되기를 바랍니다.


훌륭한 설명. 사이드 노트 : 프로젝트를 수은에서 꺼내기 위해 설치된 언어의 패키지 관리자를 디버그해야하는 것은 컴퓨터에 대한 믿음을 잃게 만드는 것입니다. oops .. 그리고 이제 새로운 파이썬 오류 "AttributeError local repository"
nicolas

1
나는 같은 문제가 있지만이 지침을 따른 후에도 작동하지 않았습니다. PIP가 여전히 잘못된 경로를 사용하고 있습니다. 이것에 대해 다른 방법이 있습니까?
Adam Starrh 2011

5
pip를 설치해야 sudo /usr/bin/easy_install pip했습니다 : -여기에서 찾았습니다 : stackoverflow.com/questions/27308234/…
Adam Starrh

문제는 그것이 설치된 유일한 버전의 pip라면 운이
없다는

55

OSX 및 그 변형의 유일한 솔루션입니다.

ln -s /usr/local/bin/python /usr/local/opt/python/bin/python2.7

1
매끄럽고 간단한 방법으로 답을 제시하려고했습니다.
엑소시스트

이것은 파이썬을 사용하는 다른 프로그램에 부작용이있을 수 있습니다. 더욱이 Python 2의 수명이 다한시기는 2020 년 1 월 1 일이며 개발자는 결국 (또는 일부 환경에서는 이미) 수정자가없는 "python"이 Python 3을 참조해야한다고 표시했습니다. python.org/dev/peps / pep-
0394

@kotoole 귀하의 답변에서 눈으로 볼 수 있지만 관찰하지 못하면 python2.7을 python3.x로 바꾸면 여전히 동일하게 작동합니다.
TheExorcist 19

1
@TheExorcist 불행히도 우리 모두에게 Python2와 Python3은 서로 다른 언어입니다. 한 언어로 작성된 코드는 다른 언어에서 실행될 때 깨집니다. python을 python2.7로 대체하면 다른 응용 프로그램이 중단 될 가능성이 높습니다. 이 솔루션은 키를 잊었을 때 현관 문을 삭제하는 것과 동일한 방식으로 "작동"합니다. 그것은 당신을 통과하지만 집이 벌레로 가득 차기 시작할 때 울지 마십시오.
kotoole 19

@kotoole offcourse, 당신 말이 맞지만 때때로 우리는 우리가 지금해야 할 일을해야합니다.
엑소시스트

32

핍 고정

이 오류의 경우 :

~/Library/Python/2.7/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`

이 문제의 원인은 pip에 하드 코딩 된 잘못된 파이썬 경로입니다 (즉, $ PATH를 변경해도 수정되지 않음을 의미합니다). 해당 경로는 더 이상 최신 버전의 pip에서 하드 코딩되지 않으므로 작동 해야하는 솔루션 은 다음과 같습니다.

pip install --upgrade pip

그러나 물론이 명령은 pip를 사용하므로 동일한 오류로 실패합니다.

이 혼란에서 스스로를 부트 스트랩하는 방법 :

  1. 운영 which pip
  2. 텍스트 편집기에서 해당 파일을 엽니 다.
  3. 첫 번째 줄을 #!/usr/local/opt/python/bin/python2.7에서 예 #!/usr/local/opt/python2/bin/python2.7(경로에있는 python2 참고) 또는 컴퓨터에서 작동하는 파이썬 인터프리터의 경로로 변경하십시오.
  4. 자, pip install --upgrade pip(이것은 당신의 해킹을 덮어 쓰고 인터프리터 문제를 해결 해야하는 최신 버전에서 pip를 작동시킵니다)

virtualenv 수정

저에게는 먼저 virtualenv에서 동일한 문제가 발생 하여이 문제를 발견했습니다.

~/Library/Python/2.7/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`

여기서 해결책은 실행하는 것입니다.

pip uninstall virtualenv
pip install virtualenv

해당 명령을 실행하면 pip에서 동일한 오류가 발생하면 위를 참조하십시오.


1
예, Mac OSX에서 Python 2.7 및 3.6을 사용하고 3.6으로 업그레이드하면이 문제가 발생했습니다. 이것이 저에게 pip3 install --upgrade pip
Excalibur

아니 : PIP 역 추적 (가장 최근 통화 마지막) : 파일 "/ usr / 지방 / 빈 / 핍", 7 행에서 <모듈> pip._internal 수입의 주요 ImportError를에서 : pip._internal라는 이름의 모듈
einarc

@Excalibur 나는 수락 된 답변 아래에 귀하의 솔루션을 주석으로 추가했습니다. 감사합니다!
retrovertigo

26

설치에 sudo를 사용하여 동일한 오류를 만들었습니다. (죄송합니다)

brew install python
brew linkapps python
brew link --overwrite python 

이로 인해 모든 것이 정상으로 돌아 왔습니다.


21
linkapps가되지 않습니다
스티브

15

Mac OSX에 Python 2와 3을 모두 설치했기 때문에 모든 종류의 오류가 발생했습니다.

내 python2.7 파일 (/usr/local/bin/python2.7)의 위치를 ​​찾는 데 사용했습니다.

which python2.7

그런 다음 실제 python2.7 설치 위치를 스크립트가 예상 한 위치와 심볼릭 링크했습니다.

ln -s /usr/local/bin/python2.7 /usr/local/opt/python/bin/python2.7

2
생명의 은인! 감사합니다.
Brian Fegter

12

비슷한 문제가있었습니다. 기본적으로 pip는 잘못된 경로 (이전 설치 경로) 또는 python을 찾고있었습니다. 다음 솔루션이 저에게 효과적이었습니다.

  • 파이썬 경로가 어디에 있는지 확인했습니다 (try which python)
  • pip 파일 ( /usr/local/bin/pip2.7/usr/local/bin/pip) 의 첫 번째 줄을 확인했습니다 . 줄은 파이썬 경로에 대한 올바른 경로를 명시해야합니다. 제 경우에는 그렇지 않았습니다. 나는 그것을 수정했고 이제는 잘 작동합니다.

9

누구에게나 도움이되는 경우이 다른 질문에서 언급 한 솔루션은 업그레이드 후 오늘 pip가 작동을 멈췄을 때 저에게 효과적이었습니다. 업그레이드 후 Pip이 끊어졌습니다.

이전에 캐시 된 위치가 변경 될 때 문제인 것 같으므로 다음 명령으로 캐시를 새로 고칠 수 있습니다.

hash -r

9

작동을 단순화하기 위해 아래 명령을 사용하여 버전 2를 다시 설치할 수 있습니다.

brew install python@2

그런 다음 내 Mac에서는 다음과 같이 보입니다.

▶ python -V
Python 2.7.10

▶ python2 -V
Python 2.7.14

▶ python3 -V
Python 3.6.5

▶ pip2 -V
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)

▶ pip3 -V
pip 9.0.3 from /usr/local/lib/python3.6/site-packages (python 3.6)

▶ pip --version
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)

1
재설치를 위해 다음 reinstall명령이 있습니다 brew.brew reinstall python@2
Valeriy Van

4

나는 같은 문제가 있었다. Python 2.7 및 3.6이 모두 설치되어 있습니다. Python 2.7은 virtualenv작동했지만 Python3을 설치 한 후 virtualenv는 버전 2.7을 계속 찾고 있었지만 찾을 수 없었습니다. 이렇게 pip install virtualenvVIRTUALENV의 Python3 버전을 설치했습니다.

그런 다음 각 명령에 대해 Python2를 사용하려면 virtualenv --python=python2.7 somecommand


4

나는 같은 문제가 있었고 virtualenv는 오래된 파이썬 경로를 가리 켰습니다. 경로를 수정하여 문제가 해결되었습니다.

$ virtualenv -p python2.7 env
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory

$ which python2.7
/opt/local/bin/python2.7

# needed to change to correct python path
$ head  /usr/local/bin/virtualenv
#!/usr/local/opt/python/bin/python2.7 <<<< REMOVED THIS LINE
#!/opt/local/bin/python2.7 <<<<< REPLACED WITH CORRECT PATH

# now it works:
$ virtualenv -p python2.7 env
Running virtualenv with interpreter /opt/local/bin/python2.7
New python executable in env/bin/python
Installing setuptools, pip...done.

이것은 효과가 있었다. 그러나 장기적인 수정입니까? 나는이 문제를 몇 가지 다른 것들로 알아 차렸 기 때문에 더 이상 작동하지 않는 각 인스턴스에 대해 변경해야 할 것이며, 이것의 장기적인 영향에 대해 우려하고 있습니다.
Jake T.

확실히 장기적인 수정이 아닙니다. 제 경우에는 파이썬 환경에 흠뻑 빠져서 이런 상황에 빠졌다고 생각하고 빠른 수정을 찾았습니다. 나는 virtualenv를 제거한 다음 기능적인 python2.7 pip로 다시 설치하면이 스틱이 될 것이라고 생각합니다.
dg

2

나는 같은 문제가 있습니다. 내가 실행하면 brew link --overwrite python2. 여전히 있었다 zsh: /usr/local/bin//fab: bad interpreter: /usr/local/opt/python/bin/python2.7: no such file or directory.

cd /usr/local/opt/
mv python2 python

해결했습니다! 이제 python2 버전 패브릭을 사용할 수 있습니다.

=== 2018/07/25 업데이트 됨

os python이 python3에 링크되었을 때 python2 버전 fab을 사용하는 편리한 방법이 있습니다. .sh당신의 명령에.

# fab python2
cd /usr/local/opt
rm python
ln -s python2 python

# use the fab cli
...

# link to python3
cd /usr/local/opt
rm python
ln -s python3 python

도움이 되었기를 바랍니다.


2

이 파일의 첫 번째 줄을 편집하는 것이 저에게 효과적이었습니다.

MBP-de-Jose:~ josejunior$ which python3

/usr/local/Cellar/python/3.7.3/bin/python3

MBP-de-Jose:~ josejunior$

전에

#!/usr/local/opt/python/bin/python3.7

#!/usr/local/Cellar/python/3.7.3/bin/python3

2

이 문제를 해결하려면 터미널 창을 닫고 새 창을 다시여십시오.

문제는 새로운 파이썬 경로가 bashrc에 추가되지 않는다는 것입니다 (소스 또는 새 터미널 창이 도움이 될 것입니다).


1

제 경우에는 MacPorts를 통해 Mac에 이미 두 가지 다른 버전의 Python이 설치되어 있으므로 Mac에서 홈브류 Python 설치를 제거하기로 결정했습니다. 이로 인해 오류 메시지가 발생했습니다.

양조를 통해 파이썬을 다시 설치하면 내 문제가 해결되었습니다.


1
sudo /usr/bin/easy_install pip

이 명령은 나를 위해 일했습니다.


1

나를 위해 centOS 7에서는 / bin에서 이전 pip 링크를 제거해야했습니다.

rm /bin/pip2.7 
rm /bin/pip

그런 다음 다시 연결

sudo ln -s  /usr/local/bin/pip2.7 /bin/pip2.7

그렇다면

/usr/local/bin/pip2.7

작동합니다. 작동합니다.


0

두 가지 버전의 Python 및 pip를 가질 수 있습니다.

하려고 노력하다:

pip2 install --upgrade pip 그리고 pip2 install -r requirements.txt

또는 pip3최신 Python 버전을 사용하는 경우.


0

TLDR : pip 경로 a는 심볼릭 링크이고 참조 된 위치에는 더 이상 실행 파일이 포함되지 않습니다. 심볼릭 링크를 업데이트해야합니다.

몇 가지를 이해하는 데 도움이됩니다.

  • 다음과 같이 입력 python하거나 pipos는 /etc/paths해당 명령과 관련된 실행 파일을 찾으려고 검색 합니다. 당신은 사용하여 거기에있는 모든 것을 볼 수 있습니다cat /etc/paths .
  • 쉘에서 사용할 실행 파일의 위치를 ​​결정하려면 편리한 명령 which이 있습니다. which python또는 다음을 입력 할 수 있습니다.which pip . 이것은 쉘이 해당 명령에 사용할 실행 파일의 위치를 ​​알려줍니다.
  • 이 부분이 핵심입니다 입니다. 위치는 실제 실행 파일 일 수도 있고 아닐 수도 있으며 심볼릭 링크 (symlink) 일 수도 있습니다.
  • 에 대한 일반적인 /etc/paths포함하는 /usr/local/bin, 대한도의 일반적인 /usr/local/bin실제 실행 파일에 심볼릭 링크의 무리를 할 수 있습니다. 실행 파일 자체가 아닙니다.
  • symlinks 참조 위치의 실행 파일이 존재하지 않으면 다음과 같은 오류가 발생합니다. bad interpreter: No such file or directory

이 문제는 pip심볼릭 링크 일 가능성이 높으며 링크 된 실행 파일이 해당 위치에 더 이상 존재하지 않을 수 있습니다. 이를 수정하려면 다음을 수행하십시오.

  1. 실행 파일의 위치 찾기- which pip(이와 같은 것을 제공합니다 /usr/local/bin/pip)
  2. 심볼릭 링크 참조 위치를 확인하십시오 ls -l /usr/local/bin/pip | grep pip(다음과 같이 제공하십시오 pip -> /usr/local/opt/python@3.7/bin/pip3).
  3. 참조 된 위치에 실행 파일이 있는지 확인 ls /usr/local/opt/python@3.7/bin/pip3 (이 문제가 발생하여 그렇지 않을 수 있음).
  4. 이전 심볼릭 링크 제거 rm -r /usr/local/bin/pip
  5. 실제 찾기 pip사용하는 경우 실행 파일 homebrew에있을 것이다 /usr/local/opt당신은 같은 것을 사용할 수 ls /usr/local/opt/ | grep python를 찾을 수 있습니다.
  6. pip 실행 파일에 대한 올바른 심볼릭 링크를 추가합니다. ln -s /usr/local/opt/python@3.7/bin/pip3 /usr/local/bin/pip
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.