ZSH에 올바른 $PATH가 설정된 잘못된 Python 버전이 반환되었습니다.

ZSH에 올바른 $PATH가 설정된 잘못된 Python 버전이 반환되었습니다.

내 환경 설정에 매우 잘못된 일이 발생하고 있습니다. 배우려고 노력하면서 Macbook Pro에 Mac OSX El Capitan을 다시 설치하고 처음부터 설치 및 구성을 시작하기로 결정했습니다. 제가 사용하고 있는 쉘은 ZSH이고 Oh-My-ZShell을 사용하여 약간 구성했습니다.

내 $PATH 및 Python:

~ ❯ echo $PATH
/Users/edchigliak/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/edchigliak/bin
~ ❯ python --version
Python 2.7.10
~ ❯

아래 스크린샷은 에 두 개의 Python2가 설치되어 있고 NET /usr/bin에 Homebrewed Python3이 설치되어 있음을 명확하게 보여줍니다 /usr/local/bin.

Python2 및 Python3 경로의 터미널 스크린샷

다음은 결과입니다 printenv(PATH 및 SHELL과 관련된 항목만).

PATH=/Users/edchigliak/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/edchigliak/bin
PWD=/Users/edchigliak
SHELL=/usr/local/bin/zsh
SHLVL=2
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.lRGo5iu4NA/Listeners
TERM=screen-256color
ZSH=/Users/edchigliak/.oh-my-zsh
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
_=/usr/bin/printenv

내 첫 번째 항목.zshrc:

export PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin 

정말 감사합니다!

답변1

쉘 프롬프트에 입력할 때 정확하게 이름이 지정된 바이너리만 python고려됩니다 .python

python를 실행 하려는 경우 python3이를 수행하는 간단한 방법은 개인 셸 시작 파일에 함수나 별칭을 설정하는 것입니다.

Python 버전 2가 필요한 일부 OS 및 타사 도구가 손상될 수 있으므로 시스템 전체를 python지적 해서는 절대 안 됩니다. 두 언어는 상호 호환되지 않는 언어(또는 원하는 경우 방언)입니다.python3python

command여기서 무슨 일이 일어나고 있는지 검토하기 위해 프롬프트에 입력하면 셸은 디렉터리를 반복하여 각 디렉터리에서 PATH정확히 이름이 지정된 실행 파일을 command찾거나 찾을 위치가 부족할 때까지 찾습니다. xcommand또는 commandante또는 와 같이 유사하더라도 다른 이름을 가진 파일은 무시됩니다 command3.xx. 별칭이나 함수가 있는 경우 해당 항목이 대신 사용되지만 PATH별칭이나 함수에서 호출한 다른 명령을 찾기 위해 참조할 수도 있습니다.

답변2

쉘은 PATH에서 다음을 검색합니다.정확한 일치. 를 입력하면 python일치하는 실행 파일을 찾으려고 시도합니다 ^python$. ^python...$동일하지 않습니다.

귀하의 경우 /usr/local/bin에 Python이 없거나 권한 문제가 있어 건너뛰게 될 수 있습니다.

1) 다음이 없는 python경우 /usr/local/bin:

사용하려는 Python 인터프리터를 가리키는 sudo ln -s /usr/local/bin/python3.6 /usr/local/bin/python소프트 링크를 만드는 데 사용할 수 있습니다 . pythonPATH에 대해 /usr/local/bin이 먼저 검색되므로 쉘은 이제 이 링크를 찾아야 합니다.

2) 파일이 존재 /usr/local/bin하지만 존재하지 않는 경우실행하다권한을 부여해 보세요 sudo chmod a+x /usr/local/bin/python.

지금은 다른 문제를 생각할 수 없습니다.

관련 정보