내 환경 설정에 매우 잘못된 일이 발생하고 있습니다. 배우려고 노력하면서 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
.
다음은 결과입니다 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
지적 해서는 절대 안 됩니다. 두 언어는 상호 호환되지 않는 언어(또는 원하는 경우 방언)입니다.python3
python
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
소프트 링크를 만드는 데 사용할 수 있습니다 . python
PATH에 대해 /usr/local/bin이 먼저 검색되므로 쉘은 이제 이 링크를 찾아야 합니다.
2) 파일이 존재 /usr/local/bin
하지만 존재하지 않는 경우실행하다권한을 부여해 보세요 sudo chmod a+x /usr/local/bin/python
.
지금은 다른 문제를 생각할 수 없습니다.