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
을 실행시킨다. (즉python
과python2
는 동일하다.)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
에게 위임하자...
더 깔끔하게 파이썬 패키지 관리할 방법이 있을까?
'시행착오 노트' 카테고리의 다른 글
나의 파이썬 환경 구축기 2 - pyenv + poetry (5) | 2020.11.15 |
---|---|
나의 파이썬 환경 구축기 1 - 써본 것들에 대한 생각 (0) | 2020.11.13 |
pandas dataframe 에서 None 은 == 로 안잡힌다. (0) | 2019.09.25 |
Pypi 에 내가 만든 패키지 배포하면서 알게된거 (0) | 2019.09.19 |
folium HeatMapWitheTime 쓸 때 좀 빡치는거. (0) | 2019.05.31 |