honey_pot
M1 가상환경 구축 및 패키지 설치 본문
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 버전 설치
터미널에 뜨는 것과 주피터 노트북에서 에러 뜨는 패키지를 잘 비교해서 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 로 셋팅함
'기타' 카테고리의 다른 글
[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 |