본문 바로가기

시행착오 노트

맥에서 파이썬 설치부터 가상환경까지

Mac 에서 파이썬 가상환경을 설치하는 과정에서 겪었던 시행착오들을 정리해본다.
나는 macOS Catalina 10.15.3 버전을 사용중이다.
하드웨어는 19년도 16' 실버 사용하고 있다. (네.. 다음 TMI)

Mac 에서의 파이썬

먼저 위 버전으로 Mac 을 설치하면 기본 파이썬이 OS 에 딸려있다.
터미널에서 다음 명령어로 확인해보면 된다.

$ which python
/usr/bin/python

$ which python3
/usr/bin/python3

실제로 /usr/bin 에 가서 해당 명령어 파일들을 확인해보면 다음과 같다.

정리하면

  • python 입력 -> python2.7 을 실행시킨다. (즉 pythonpython2 는 동일하다.)
  • python3 입력 -> python3 을 실행시킨다.
    • 실행시켜보니 python 3.7.3 버전임.

하나 다른건, python3 는 그 자체로 그냥 실행하는 파일인데, python2 는 symbolic link 로 다른 경로에 실행파일이 있다는 것... (근데 왜 다른 경로에 있는지 모르겠다. 헷갈리게.)
VS Code 에서도 Select Python Interpreter 를 통해 다음과 같이 볼 수 있다.

얼핏보면 3개 같지만, 사실 위에 2개는 같은 것이다.

pip 는?

이번엔 pip 를 확인해보자.

$ which pip
pip not found

$ which pip2
pip2 not found

$ which pip3
/usr/bin/pip3

pip3 만 실행 명령어가 존재한다.
혹시나 해서 /usr/bin/ 경로에 가서 다른 pip 가 있나 찾아봤지만,

그렇다. 하나 밖에 없다.
python2 를 위한 pip 도 있을텐데, 암튼 명령어로 등록은 안되어있다.
(근데 이건 내가 이것저것 하다가 없어진 걸 수도... 정확한건 which 명령어 써서 확인하자.)

pip3 install 로 특정 패키지를 설치할 때, --user 를 붙이느냐 안 붙이느냐에 따라 설치 경로가 달라진다.
사용자가 그 기준이 된다.

  • pip3 install {패키지 명}
    • 모든 로컬 사용자가 참고할 수 있는 경로에 설치됨
    • 경로는 /Library/Python/3.7 임.
    • sudo 권한으로 설치하지 않으면 에러가 남.
    • 한마디로, 이렇게 설치하는걸 권장하지 않음.
  • pip3 install {패키지 명} --user
    • 현재 유저만 참고할 수 있는 경로에 설치됨
    • /Users/heumsi/Library/Python/3.7 에 설치 (즉 heumsi) 가 붙음.
    • 이렇게 설치하는걸 권장.

VS code 쓰다가 짜증나는거

일단 나는 VS code 에서 파이썬 작업을 하는데, 여기서 파이썬 인터프리터를 설정해주면 다음과 같이 Command Line Tool 을 설치하라고 한다. (VS code 가 xcode-select --install 를 실행시킴)

Command Line Tool 은 gcc, git 등 기본적인 개발 CLI 환경을 설정해주는 앤데... 문제는 얘가 파이썬을 또 설치해버린다...
/Library/Developer/CommandLineTools/usr/bin/ 에 아래같이 또 파이썬이 있음..

또 어딘가에 깔려버린 파이썬

얘네들 다 삭제했지만, VS code 코드로 다시 파이썬 인터프리터 설정하면, 위 과정을 반복한다.
즉, 다시 /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework 가 생긴다.
이놈 지우고 싶은데... VS code 가 계속 이 친구를 설치하려 한다.
그래서 어쩔 수 없이 안고간다 ㅠㅠ

가상환경

아무래도 파이썬 버전 별로, 혹은 프로젝트 별로 좀 깔끔하게 쓰고자 가상환경을 써야겠단 생각을 했다.
사실 회사 프로젝트 차원에서는 좀 사소하게 중요한 부분이다. (python3.6 이냐 python3.7 쓸 것이냐...)

파이썬 가상환경 만드는 방법은 크게 4가지 방법이 있다.

  • virtualenv
    • 가장 일반적이고 정통적이고 깔끔한 방법이다.
    • 근데 원하는 버전의 built-in python 이 있어야 함.
      • 내가 python3.6 을 쓰고 싶으면 내 로컬에 python3.6 이 미리 깔려있어야 한다.
      • 현재 내 로컬엔 python3.7 이 없으므로 python3.7 환경의 가상환경을 못 만듬...
      • 파이썬 버전 별로 다르게 하려고 쓰는건데... 이걸 써야하나..?
      • 암튼 제일 간단하게 직관적인 방법이나.. 난 모르겠음
  • conda
    • 솔직히 나한테 제일 편하고 늘 써오던 방법임. 쉽기도 쉽다.
    • 근데 conda 하나 만드는데 굉장히 헤비함.
      • 들어가는 기본 라이브러리가 매우 많음.
      • 내가 원하는 건 내가 깔아 쓸래 이젠... 콘다 안녕.
  • pipenv
    • 다른 방법보다 아무래도 더 정교하고 핫한거 같다.
    • 근데 난 이 블로그 글 에서 쓰지 말라해서 안쓴다. (불안정한거 빠르게 거르기)
  • pyenv
    • 이게 그나마... 제일 낫다.
    • pyevn-virtualenv 라는 거 별도로 깔아줘야해서 귀찮긴 한데
    • 그래도 파이썬 버전별로 세세하게 다운받을 수 있다.
    • 설치법은 이 글 참고

마무리

뭐 좀 하다보면 파이썬이 맥에 엄청깔린다. 원래 기본으로 있는 Python2, 3 이며.
아마 처음 맥 받고 파이썬 설치해야지한 사람들은 brew install python 로 또 깔았을 것이며
뭐 하다가 pyenv 로 다른버전 파이썬 받으면 또 어딘가에 생겨있을 것이다.
혼란스럽다 혼란스러워.

구글링 해보니 역시 나랑 비슷한 경험인 사람들이 많았고,
아무래도 이 글에서 이런 시행착오 끝에 제일 깔끔하게 맥에 파이썬 까는 방법을 소개한다.
(물론 내가 이 글 따라 간거임...)

자 다음부터는 맥에 brew install 이니 pip install 니 하기 전에.
그냥 빠르게 가상환경부터 만들고 모든 python 환경은 pyenv 에게 위임하자...

더 깔끔하게 파이썬 패키지 관리할 방법이 있을까?