honey_pot

M1 가상환경 구축 및 패키지 설치 본문

기타

M1 가상환경 구축 및 패키지 설치

_tera_ 2022. 8. 1. 10:06

anaconda로 주피터노트북 만지다가 tensorflow에서 딱 막힘

m1 파이썬 3.9는 지원하지 않는 까다로움에 miniforge 깔고 가상환경 다시 만듦....

⭐️ anaconda 가상환경 안 되니까 miniforge로 하기 ( 아나콘다 왜 깔았냐고..)


1. Miniforge 설치

 

➡️ M1용 Miniforge Shell Script 다운로드 
https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh

 

➡️ 터미널 열고 차례대로 입력

$ chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh
$ sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
$ source ~/miniforge3/bin/activate

 

2. Conda 가상환경 구축 + 활성화

$ conda create --name tf25 python=3.8 
$ conda activate tf25

 

( --name 뒤에 가상환경 이름 쓰면 되는데 tensorflow 2.5.0 설치하려고 만드는 거라 다들 tf25 쓰나보다 그래서 나도 tf25)

가상환경  비활성화

$ conda deactive 가상환경명

가상환경 삭제

$ conda env remove --n 가상환경이름

 

3. M1 실리콘용 Tensorflow 설치

2.5.0 설치!!!!!!! 가상환경 외에서 설치했을때 2.8인가 2.9 대가 설치됐는데 아무 쓸모 없다 안 돌아가기 때문이다..파이썬도 꼭 3.8 버전
$ conda install -c apple tensorflow-deps==2.5.0
$ pip install tensorflow-macos==2.5.0
$ pip install tensorflow-metal==0.1.2

 

4. 패키지 설치

필요한 패키지를 일단 처음에 conda로 설치해본다.

➡️ PackagesNotFoundError: The following packages are not available from current channels:~~~ 오류

➡️ pip install 로 바꿔서 도전
$ conda install -c conda-forge -y pandas jupyter

이게 안되면 pip install pandas jupyter 이런식으로 해본다.

특히 numpy랑 matplotlib이 conda로는 안되고 pip로는 되는 이상한 패키지들이다

➡️ 이미 설치되어 있다고 뜨는데(Requirement already satisfied:~~) 주피터노트북에서 안 된다고 하면 pip uninstall 후에 다시 설치해본다

scikitlearn 패키지는

$ conda install scikit-learn

⭐️ tensorflow 설치 시 tensorflow 라고 치지 말고 tensorflow_datasets 라고 칠 것 .

$ pip install tensorflow_datasets
$ jupyter notebook

 

주피터 노트북에 tensorflow가 잘 돌아가는지 확인한다.

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU'))

💦오류가 뜬다

 

ModuleNotFoundError: No module named 'absl' 

 

모듈이 없다고 하니 깔아준다

absl 

$ pip install absl-py

 

필수 패키지들이 없고 이대로 설치하면 다른 패키지들이랑 충돌날 것이라는 오류가 뜨지만 설치는 또 된다(?)

 

다시 run 하면 다음 오류

 

ModuleNotFoundError: No module named 'google.protobuf'

pip uninstall protobuf 

pip uninstall google

pip install google

pip install protobuf

 

해주면 이제 터미널이 말해주는대로 무지성 설치가 답임을 받아들이게 된다. 버전 오류가 나지 않게 말을 잘 따르자

 

pip install astunparse gast google-pasta grpcio h5py keras-preprocessing opt-einsum termcolor wrapt

 

➡️ 근데 grpcio 에서 오류가 나서 터미널에서 지시하는 대로 하나하나 버전 정해서 설치했다.

pip install gast==0.4.0

pip install google-pasta~=0.2

pip install absl-py~=0.10

pip install protobuf==3.13

protobuf는 3.20.x를 설치하거나 더 낮은 버전을 설치하라고 해서 uninstall하고 3.20.0에서 다운그레이드 해서 3.13 버전 설치

1개 나오면 정상동작

터미널에 뜨는 것과 주피터 노트북에서 에러 뜨는 패키지를 잘 비교해서 uninstall ↔️ install 번갈아가면서 시도해본다.

 

tensorflow-macos 2.5.0 requires grpcio~=1.34.0, which is not installed.
tensorboard 2.9.1 requires grpcio>=1.24.3, which is not installed.
tensorflow-metadata 1.9.0 requires protobuf<4,>=3.13, but you have protobuf 4.21.2 which is incompatible.
tensorflow-macos 2.5.0 requires h5py~=3.1.0, but you have h5py 3.7.0 which is incompatible.
tensorflow-macos 2.5.0 requires numpy~=1.19.2, but you have numpy 1.22.3 which is incompatible.
tensorflow-macos 2.5.0 requires six~=1.15.0, but you have six 1.16.0 which is incompatible.
tensorflow-macos 2.5.0 requires typing-extensions~=3.7.4, but you have typing-extensions 4.1.1 which is incompatible.
tensorflow-macos 2.5.0 requires wrapt~=1.12.1, but you have wrapt 1.14.1 which is incompatible.
tensorboard 2.9.1 requires protobuf<3.20,>=3.9.2, but you have protobuf 4.21.2 which is incompatible.

 

protobuf 3.13 으로 다운그레이드하면 이런 에러가 뜨는데

 

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow-macos 2.5.0 requires grpcio~=1.34.0, which is not installed.
tensorboard 2.9.1 requires grpcio>=1.24.3, which is not installed.
tensorflow-macos 2.5.0 requires h5py~=3.1.0, but you have h5py 3.7.0 which is incompatible.
tensorflow-macos 2.5.0 requires numpy~=1.19.2, but you have numpy 1.22.3 which is incompatible.
tensorflow-macos 2.5.0 requires six~=1.15.0, but you have six 1.16.0 which is incompatible.
tensorflow-macos 2.5.0 requires typing-extensions~=3.7.4, but you have typing-extensions 4.1.1 which is incompatible.
tensorflow-macos 2.5.0 requires wrapt~=1.12.1, but you have wrapt 1.14.1 which is incompatible.
googleapis-commonprotos 1.56.4 requires protobuf<5.0.0dev,>=3.15.0, but you have protobuf 3.13.0 which is incompatible. 

➡️ googleapis-commonprotos 1.56.4 쓰려면 protobuf 3.15.0 이상 설치하랜다 어쩌라는건지?? tensorflow 용으로 가상환경 구축했으니 일단 넘어가본다...

 

pip uninstall wrapt

pip install wrapt~=1.12.1

 

pip uninstall h5py

pip install h5py~=3.1.0 ➡️ 오류... 그래도 GPU 1개는 뜬다 그래서 패스

 

 

 

자바 버전은 zulu-15.jdk 로 셋팅함

# JAVA PATH
export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-15.jdk/Contents/Home
export PATH=${PATH}:$JAVA_HOME/bin
 
계속 추가할 예정

'기타' 카테고리의 다른 글

[Linux] 리눅스 파일 개수 확인 명령어  (0) 2022.08.19
mac 단축키  (0) 2022.08.04
git branch에 커밋, commit 리셋  (0) 2022.07.23
맥북m1 mysql workbench 설치  (0) 2022.01.13
[ERMaster] 이클립스에 설치하기  (0) 2021.11.22
Comments