Python

MAC에서 Python 설치(with Homebrew) + zsh: command not found: python3

MORAN9 2024. 4. 27. 20:00
반응형

Python 설치에는 여러가지 방법이 있겠지만, 이것저것 설치하기 좋은 Homebrew로 설치해보겠습니다.

 

Homebrew

The Missing Package Manager for macOS (or Linux).

brew.sh

 
Homebrew 설치:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 
 
Python3 설치:

brew install python3

 
 
python3 설치 시 여러가지 메시지들이 뜨는데, 맨 아래 5줄 정도에 아래와 같은 메시지가 있습니다. 메시지가 알려주는 경로에서 "/python3"를 제외한 "/opt/homebrew/bin" 부분을 복사해주세요. "/" 부분 신경쓰셔야합니다.
+ command not found 뜰 경우 대비, 안뜨시면 필요 없습니다.

Python has been installed as
  /opt/homebrew/bin/python3

 
 
만약 command not found 뜨고 안된다. 터미널 껐다키고 다시해봤는데, 그래도 안된다... 그럼 아래 이어서 진행하시면 됩니다.

➜ ~ python3        # ➜ ~ 는 프롬프트이며, python3만 입력하시면 됩니다.
Python 3.12.3 (main, Apr  9 2024, 08:09:14) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

 

zsh: command not found: python3

+ bash: command not found가 뜨신 분들은 ~/.zshrc에서 ~/.bashrc로 바꾸어 진행하시면 됩니다.
 
Homebrew를 처음 설치하신 분들의 경우, 아직 zsh가 Homebrew 폴더의 위치를 인식하지 못해서 python 명령어를 인식하지 못합니다.

➜ ~ python3 -v      # ➜ ~ 는 프롬프트이며, python3 -v만 입력하시면 됩니다.
zsh: command not found: python

 


 

방법 1.  직접 들어가서 수정

단순 재미로만 시도해보자면, 아래 명령어로는 파이썬이 정상적으로 실행될 것을 보실 수 있습니다. 이건 python3 명령어와 더불어 해당 명령어가 위치한 폴더명까지 안내해주었기 때문인데요, /opt/homebrew/bin 까지의 경로는 다를 수 있어, 앞서 적어두었던 경로를 입력하시면 됩니다(python installed as ... ).

➜ ~ /opt/homebrew/bin/python3
Python 3.12.3 (main, Apr  9 2024, 08:09:14) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()   // 터미널 Python 종료 명령어

 
 
그럼 zshrc에 python 명령어가 위치한 homebrew 폴더를 알려주어봅시다. 우선 아래 두 명령어 중 하나를 통해 ~/.zshrc 파일로 이동합니다. 찾으실 수만 있다면 그냥 아무거나로 여셔도 됩니다. nano, 메모장 기타등등.. 근데 메모장으로 여시는게 더 어려울 것 같으니, 정 안되시겠으면 VSCode를 설치하면서 PATH 옵션 체크하시면, 두 번째 명령어 사용이 가능합니다(파일 저장 잘해주세요).

vi ~/.zshrc

# 만약 나는 vi 사용법을 모르겠다 + Visual Studio Code가 깔려있다
# 하시는 분들은 아래 명령어로 접근하셔도 무방합니다.
code ~/.zshrc

 
 
.zshrc 파일을 보시면 제 경우, 위에서 두 번 째 줄에 export PATH=.. 라인이 있습니다. 앞 부분은 같고, 뒤는 다를 수 있습니다. 다른 줄은 건들지 마시고, 이 줄만 수정해야합니다.

  1 # If you come from bash you might have to change your $PATH.
  2 export PATH=$HOME/bin:/usr/local/bin:/Users/moran/flutter/bin:/opt/homebrew/bin:$PATH
  3
  4 # Path to your oh-my-zsh installation.
  5 export ZSH="$HOME/.oh-my-zsh"

※ 만약 export PATH=로 시작하는 해당 줄이 없으시다면 "export PATH=<아까복사한경로>:$PATH"로 새로 작성해주시면 됩니다.
 
 
Python은 초심자 분들이 좀 더 많이 들어오실 것 같아, 설명해보자면 아래와 같습니다.

# BEFORE: 아마 대다수의 분들이 처음엔 이렇게 되어있을 겁니다.
export PATH=$HOME/bin:/usr/local/bin:$PATH


# AFTER : $PATH 바로 앞에 아까 복사하셨던 경로(/opt/homebrew/bin)를 넣고 ":" 특수문자로 마무리를 합니다.
export PATH=$HOME/bin:/usr/local/bin:/opt/homebrew/bin:$PATH

 
$HOME : 사용자의 home directory의 경로
$PATH : 이와 같은 export PATH 형식 등으로 기존 저장되어있던 PATH를 불러오기
      :      : 경로와 경로 사이를 구분하는 특수문자. 예를 들면 문장에서의 ","의 역활
 
 
따라서 위 명령어는 아래와 같은 내용입니다.

등록할  명령어를찾아볼경로 = 처음가서찾아볼경로:없으면가서찾아볼경로:...:$기존에등록되어있던경로들
export     PATH     =   $HOME/bin  :/usr/local/bin:....:$PATH

 


 

방법 2.  직접 들어가서 수정

만약 정말 다 모르겠다, 하시는 분들은 아래 둘 중 하나 해당하는 명령어로 진행합니다.

# zsh: command not found 오류가 나온 경우
echo "export PATH=<아까복사한경로>:\$PATH" >> ~/.zshrc

# bash: command not found 오류가 나온 경우
echo "export PATH=<아까복사한경로>:\$PATH" >> ~/.bashrc

 


 
어느쪽이든 성공하셨으면, 터미널을 껐다 키시고 아래 명령어를 입력하시면 python3 명령어가 정상 실행되는 것을 보실 수 있습니다.

➜ ~ python3
Python 3.12.3 (main, Apr  9 2024, 08:09:14) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

 

★ Python으로 Python3를, pip로 pip3를 사용하기

# ZSH 유저
echo "alias python=python3" >> ~/.zshrc
echo "alias pip=pip3" >> ~/.zshrc

# BASH 유저
echo "alias python=python3" >> ~/.bashrc
echo "alias pip=pip3" >> ~/.bashrc

 
Python은 Python2와 Python3의 차이가 큰 언어이기 때문에 이를 구분할 필요가 있습니다. 시스템 초기에 Python 명령어로 불러와지는 파이썬 버전은 Python2로, 최근 저희가 보편적으로 사용하는 Python3가 아니므로, 명령어의 애칭을 만들어주는 alias 명령어를 통해 python 이라는 명령어는 python3의 애칭 명령어임을, pip라는 명령어는 pip3의 애칭 명령어임을 알려줍니다.
 
 
↓ 진행하지 않으셔도 되는 단순 설명 부분

alias python=python3
alias pip=pip3

단순 덧붙이자면, 위와 같은 명령어로도 즉각적인 애칭 생성이 가능하지만, 이를 영구적으로 이용하기 위해서는 우리가 사용하는 zsh나 bash 등의 셸에게 해당 애칭을 알려줄 필요가 있습니다. ~/.zshrc나 ~/.bashrc로 들어가서 이전처럼 한 줄 만들어주셔도 되나, 저희는 간단하게 텍스트를 화면에서 출력하는 echo 명령어와 파일의 최하단에 특정 라인을 넣어주는 Redirection(>>)을 통해 특정 파일의 내부에 들어가지 않고도, 터미널에서 간단하게 파일을 수정해보았습니다. 여기서 주의해야할 점은 ">>"는 파일의 최하단에 한 줄을 추가해주는 특수문자이지만, ">"는 파일을 덮어쓰는 특수문자이기 때문에, ">"로 중요한 파일을 날려먹지 않도록 유의해야합니다.
 

➜ ~ python
Python 3.12.3 (main, Apr  9 2024, 08:09:14) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

마찬가지로 터미널을 종료 후 재시작하면 python 명령어로도 python3가 정상 실행되는 것을 볼 수 있습니다.
 


 
 

error: externally-managed-environment

보실 수 있는 또 다른 에러:
 

➜ ~ pip install --upgrade pip
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try brew install
    xyz, where xyz is the package you are trying to
    install.

 
아래 명령어로 해결하면 된다고 합니다.

➜ ~ python3 -m pip config set global.break-system-packages true
Writing to /Users/moran/.config/pip/pip.conf

 

 

맥북 Homebrew python설치시 pip 문제

맥북에서는 프로그램들을 설치할때 윈도우처럼 직접 설치파일을 다운받는 방식보다는 Homebrew를 사용하여서 다운받는 방식을 많이 사용합니다.이번엔 오랜만에 python을 사용하여서 프로젝트 할

velog.io

error: externally-managed-environment 해결법 출처


 

반응형