M1 세팅 Part3. Miniforge3 설치, conda 가상환경

그는사악해·2022년 4월 24일
5

M1_Settings

목록 보기
5/18
post-thumbnail

인트로

필자의 경우, 2021년 7월에 M1 MacBook Pro 를 구매했었다. 아무 것도 모르고, 아무 생각 없이, 그저 설레는 마음으로 ANACONDA를 비롯해서 이것저것을 설치했었는데 ... 결과적으로 이 M1 MacBook Pro를 2번인가 밀었다.

M1의 경우, pip install tensorflow 이나 pip install tnesorflow-gpu 같은 명령어로 설치하면 안 된다. (쉽게 말하면) Apple에서 자체적으로 디자인하고 제작한 M1(CPU-8CORE & GPU-8CORE) 특성상 다른 CPU와 GPU와는 연산(작동)방식이 다르기 때문에 일반적인 방법으로 ANACONDA에서 tensorflow를 설치하면, 연산이 안 되거나 에러가 난다. 그래서 Apple에서 '공식적'으로 ANACONDA가 아닌 'miniforge3'를 지원하고 있다.

또한, Apple에서 GitHub 채널을 통해서 M1 맥북(BigSur OS)에 최적화화된 TensorFlow를 제작하여 제공하고 있는데, (M1에서 tensorflow를 사용하고 싶다면) Apple 자체제작 tensorflow로 설치해야한다.

  • Apple에서 제공하는 tensorflow는 python 3.8 환경에서의 사용을 권장하고 있다.
  • Apple에서 M1에서는 miniforge3을 통한 tensorflow 사용을 권장하고 있으며, ANACONDA에서 tensorflow 설치 및 실행을 하지 말라고 한다.
  • tensorflow를 사용하지 않을 생각이라면, ANACONDA 사용해도 상관없다.

필자의 경우, ANACONDA 대신 miniforge3를 설치하고, 가상환경을 생성하고, tensorflow와 기타 여러 라이브러리를 설치하고 사용 중이다.

간략한 안내

M1 tensorflow 설치하는 포스팅을 총 3부작으로 이루어질 것이다. 이 포스팅은 M1 맥에 miniforge3를 설치하는 것과 conda 가상환경 생성에 대해서 다룰 것이다. M1 세팅 Part0. Download First, M1 세팅 Part1. iTerm2 & Brew 깔끔한 버전, M1 세팅 Part2. 기본적인 ZSH 세팅과 brew install를 진행한 것을 전제로 한다.

01 miniforge3 설치

1) iTerm2 실행 및 Downloads로 이동

: iTerm2를 실행하고, 다음 명령어로 Downloads로 이동해보자.

cd Downloads

2) bash로 설치해보자.

: Downloads 폴더로 이동한 뒤, 다음 명령어로 설치를 실행해보자.

bash Miniforge3-MacOSX-arm64.sh
  • bash mini까지 입력하고 Tab 키를 누르면 자동완성이 된다.

    여기까지 잘 따라왔다면, 위와 같이 입력하고, Enter 키를 누르자.

3) 'Enter' 키 여러번 계속 누르자

: 위 2)을 마쳤다면, 바로 다음 화면이 뜰 것이다.

4) How?

  • 여기서부터 Enter키를 계속 눌러주면 된다. 처음에 영어로 어쩌고저쩌고 장문의 토플RC 같은 글들이 줄줄이 나오는데 이 때, Enter키를 (END) 까지 나올 때까지 계속 눌러준다.
  • (END) 가 나오고 나서 몇 번 Enter를 눌러주면, 다음 스크린샷처럼 yes|No 파트가 나온다. yes 눌러주고 Enter 눌러준다.
  • 이후에 Enter를 한 번씩 눌러주고 반응을 꼭 보자. 왜냐하면, 다음 스크린샷의 해당하는 부분에서 Enter키 한 번 누르면, 좌르르르륵 뭔가 나오면서 설치가 진행되기 때문이다.
  • 이 이후에, 기다리다보면, 다음 스크린샷처럼 yes|No 파트가 한 번 더 나온다. yes 눌러주고 Enter 눌러준다.

5) 설치가 완료되면, Command + Q로 iTerm2를 종료해주고 다시 켜주자

그래야 다음 스샷처럼 iTerm2(을 다시 켰을 때 iTerm2)에서 conda가 (이쁜 컬러도 들어가고) 인식이 잘 될 것이다.

이렇게 되면 설치 완료

02 Homebrew로 miniforge 설치

iTerm2 에서 다음 명령어로 설치가 가능하다.

brew install miniforge

혹시 모르니 스크린샷을 첨부하겠다.

가장 하단에 보이는 명령어를 실행하면, miniforge3가 설치 될 것이다.
brew를 통해서 miniconda 설치 이후에 바로 아래 코드처럼 conda init을 해야할 것이다. (여기 참고)

conda init zsh

[스크린샷 부가설명]

brew search minifoge

Homebrew에서 miniforge를 검색하는 명령어이다.

brew info miniforge

Homebrew를 통해 설치되는 miniforge의 정보를 볼 수 있다. 'Miniforge3-4.10.3-2-MacOSX-arm64.sh' 파일로 설치되는 것을 알 수 있고, 파일명의 'arm64' 문자열이 있는 것을 보면, M1 맥북에 맞는 파일로 설치된다는 것을 알 수 있다.

03 conda 가상환경

1) conda 가상환경 생성하기

 conda create -n krc python=3.8


: python 3.8 버전의 krc라는 이름의 conda 가상환경생성하는 명령어이다. conda가상환경에서 create(생성하다) 그리고 그 뒤의 -n은 name을 의미하고, 그 뒤에 가상환경명(krc)이 온다. 가장 마지막의 python=3.8은 3.8 버전의 python의 conda 가상환경을 생성하겠다는 의미다.

  • 위 코드를 실행하면, 다음과 같은 화면으로 바뀐다.

  • 설치 진행여부를 묻는 질문이다. 여기서 y를 입력하고 Enter키를 눌러서 진행한다. 완료되면, 다음 화면처럼 된다.

2) conda 가상환경 진입하기

conda activate krc

: conda 가상환경에 진입하는 명령어이다. conda 가상환경으로 진입해야할 때마다 항상 위 코드를 입력 및 실행해야한다. 매번 이렇게 번거롭게 conda activate krc 로 가상환경 진입을 한 후에 jupyter notebook을 입력 및 실행해서 쥬피터 노트북을 열어야한다.

  • 가상환경에 진입하게 되면, 우측의 base가 다음과 같이, 가상환경명으로 바뀌어져 있을 것이다.

Q) 가상환경을 왜 만들까요?

: python 관련 라이브러리 혹은 패키지들이 엄청 많은데, 이러한 패키지들은 강한 Hardware Dependency가 있다. 잘 와 닿지 않을 수 있는데, 쉬운 예시로 여러분의 맥이나 윈도우에 가상환경 생성없이 Deep Learning Framework인 Tensorflow를 잘못 설치하면, ... 싹 밀어야하는 대참사가 일어날 수 있다. 그렇기 때문에, 이러한 것을 예방하고자, 게다가 여러 실험환경이 필요한 경우, ... 등 다양한 경우를 위해 가상환경을 생성하고, 진입해서 사용한다.

3) conda 가상환경에 필요한 라이브러리 설치하기

그런데 krc 가상환경에는 아무런 라이브러리들이 없으니, 필요한 라이브러리들을 설치해야한다.

  • 물론, conda 가상환경에 진입한 상태여야한다.
  • 설치는 한 번만 하면 된다.
conda install jupyter numpy pandas scikit-learn matplotlib seaborn bs4 lxml scipy 


이번에도 설치 진행여부를 묻는 질문이 나올 것이다. 여기서 y를 입력하고 Enter키를 눌러서 진행한다.

간략한 설명

  • jupyter: Colab과 비슷한 Jupyter Notebook.
  • numpy: 모든 연산에 관한 라이브러리. 엄청난 기술의 집약체이고 다른 라이브러리들이 numpy를 의존을 많이 한다. 우리와 앞으로 평생 동고동락할 녀석이기도 하다.
  • pandas: 엄청난 기술이 집약된 라이브러리. DataFrame 을 다루고 그와 관련된 여러 기능들이 담겨 있다. 이 녀석 , 또한 우리와 동고동락할 녀석이다. (잘 모르겠으면, 엑셀같은 녀석인데, 엑셀보다 훨씬 엄청난 녀석이라고 생각하면 된다. )
  • matplotlib, seaborn: 시각화 라이브러리.
  • scikit-learn: 머신러닝 모델들이 담긴 라이브러리
  • scipy: 통계 기반의 모델들이 담긴 라이브러리
  • bs4: BeautifulSoup4, 웹크롤링할 때 쓰는 라이브러리
  • lxml: 웹 관련 라이브러리 입니다.

4) Jupyter Notebook 실행

: 다음 코드를 입력해서, Jupyter notebook을 실행해보자. 여러분의 메인 웹브라우저에서 Jupyter NoteBook이 실행될 것 이다.

  • 물론, conda 가상환경에 진입한 상태에서 진행해야 한다.
jupyter notebook

Jupyter Notebook

  • Step 01: 어떤 디렉토리에서 Jupyter를 실행했느냐에 따라 디렉토리 브라우징이 달라질 것이다. 보통 jupyter notebook을 실행하면 다음과 같은 화면일 것이다.
    여기서 Desktop을 클릭해서 들어가면, 여러분의 바탕화면(윈도우10 용어로 비유하자면)으로 진입하게 된다.

  • Step 02: 우측에 New -> Python 3 선택 (혹은 다른 Python 3.8.13('가상환경명') ) -> 확장자가 .ipynb 인 파일이 생성된다.
    바탕화면에 생긴 확장자가 .ipynb 인 Jupyter Notebook 파일
    : 여러분과 달리 필자의 스샷애은 DS라고 박힌 뭔가 좀 있어보이는 아이콘이 박혀있는 것을 볼 수 있다. 필자는 JetBrains - DataSpell이라는 (쓰지도 않는) IDE를 다운받아서 그렇다.

  • Step 03: 다음과 같은 형태의 화면(=바탕화면에서는 확장자가 .ipynb 인 파일)이 열릴 거고 여기서 우린 실습할 예정이다.
  • Step 04: 실습을 끝내고 싶을 때, miniforge prompt 창에서 Ctrl + Z 혹은 Quit(스샷)를 누르시면 된다.

  • Step 05: 그리고 다음 명령어로 가상환경을 나오면 된다.

conda deactivate


그러면 우측의 krc가 base로 바뀐 것을 확인할 수 있다.

여기까지가 기본적인 실습을 위해 가상환경을 생성하고 jupyter notebook을 실행 및 종료하고 가상환경에서 나오는 방법이다.

우리는 매번 실습할 때마다, 이렇게 번거롭게 conda activate krc 로 가상환경 진입을 한 후에 jupyter notebook을 입력 및 실행한 후 쥬피터 노트북을 열어야한다. 우리의 숙명이다. 하지만, 간단하게 하는 방법도 있다. alias로...

04 conda 가상환경 관리

1) 가상환경 내에 설치된 라이브러리 확인

  • 가상환경에 진입한 상태여야 한다.
    conda list
  • 실행하면 다음과 같이 가상환경 내에 설치된 라이브러리들이 뜬다.

2) 가상환경 리스트 확인

: 자신의 컴 안에 있는 conda 가상환경 리스트를 뽑아주는 명령어이다. 현재 krc 가상환경에 있기 때문에 krc 가상환경 옆에 * 이 있는 것이다.

conda env list

3) 가상환경 삭제

: 가상환경에서 무언가를 잘못 설치해서 꼬이거나 아니면, 마음에 안 들 수 있다. 필요가 없어지면, 바로바로 삭제해주도록 하자. krc 가상환경을 삭제해보겠다.

  • 가상환경에서 벗어난 상태여야 한다. (conda deactivate)
conda env remove --n krc

  • 너무 심플해서 안 믿긴다면, conda env list로 확인해보자.
conda env list

krc 가상환경이 삭제된 것을 확인할 수 있다.

profile
데이터를 베어라

2개의 댓글

comment-user-thumbnail
2022년 12월 24일

와... 블로그장님.. 진짜 파트0부터 파트 5까지 따라한 사람입니다.
정말... 1주일동안 고생하던걸 해결해주셨어요 ㅠㅠㅠㅠㅠㅠㅠㅠ정말 감사합니다!!!!!!!!!!!

세팅이 처음인 초보 입장에서는 스크린샷 하나하나가 정말 귀하더군요. 시행착오라던가 성공했을때의 화면도
귀했는데. 꼭꼭 씹어먹으라면서 올려주신것 덕분에 잘 세팅했습니다.

답글 달기
comment-user-thumbnail
2023년 2월 7일

윈도우에선 잘하던건데 막상 맥으로 오니까 완전 ㅋㅋㅋㅋ 어색해서
써주신 글 덕분에 도움 많이 받았습니다! 적게 일하시고 많이 버세요 ㅎㅎ

답글 달기