먼저 conda와 pip 비교를 해보겠다.
아나콘다는 가상환경 설정 + 패키지 관리까지 가능,
pip는 오직 파이선 패캐지 관리만 가능한 것이
비교할만한 주요한 특징이다.
https://www.anaconda.com/blog/understanding-conda-and-pip
그리고 중요한 가상환경 구성하기.
환경 설정하다보면 여러모로 버전 체크 때문에 머리가 아프다. 뭐만 하면 무슨 패키지가 버전이 안맞아서 에러나고, 그래서 다운 그레이드 해주고, 업그레이드 해주고... 그렇게 하나 고치면 뭐가 하나 또 난리가 나고 ㅠㅠ
그래서 초반에 설정을 잘 해주는게 중요한데,
0번째로 nvidia driver 설치부터 해주고
nvidia graphic driver version check는
1. 바탕화면 우클릭 > nvidia 제어판 > 도움말 > 시스템 정보 > 디스플레이 들어가면 나옴
첫번째로 내 컴퓨터 사양과 OS, GPU version (command line : nvidia-smi ; 설치가능한 maximum cuda version) 은 꼭 체크해주고
https://winbuzzer.com/2020/08/21/how-to-check-what-graphics-card-you-have-on-windows-10-xcxwbt/
두번째로 아나콘다 각자 OS에 맞게 깔아주고 (공홈 문서)
세번째로는 가상환경을 만든다. (참고 공홈 문서)
- 보통은 이런식으로 쳐서 만든다.
conda create -n env_name python=3.x
-
이런식으로 설치 패키지를 나열하거나 특정 버전을 지정해줄 수도 있다. 보통은 conda에서 알아서 dependency 조정을 해주기 때문에 버전을 따로 지정 안해도 된다.conda create -n env_name python tensorflow numpy scipy=0.15.0
- 그다음에 터미널에 뜨는 대로
conda activate env_name
- 일반적으로 설치하는 패키지를 한번에 설치하는 command line은 아래 정도면 된다.
-
conda install notebook matplotlib pandas seaborn -y
- 특정 가상환경을 yml file에 저장해서 그걸 그대로 복붙해서 깔고 싶으면 그렇게 해도 된다. (공홈)
- 그 외에 필요한 패키지는 anaconda navigator나 anaconda/repo에 들어가서 찾아본 다음에 커맨드 복붙하면 된다.
네번째로 내가 깔고자 하는 Framework(TF or Pytorch) 가 cuda 버전 어떤 것과 맞는 지 확인한다.
- 아나콘다 가상환경을 만들어준 후에 그 안에서 설치한다.
- pip로 tensorflow 깔면 cuda, cdnn을 일일이 버전 찾아서 깔아줘야 하는 수고가 필요하나... 킹갓 conda로 깔면 그런거 필요 없이 알아서 깔아준다.(참고)
- TF : 공홈 > 설치> 소스에서 빌드> 각자에게 맞는 OS > CUDA 버전에 맞는 TF 버전과 파이썬 버전 체크
- Pytorch : 공홈 > Get Started > Start Locally > 친절하게 각자 사양에 맞춰서 이미 표시된 셋팅으로 나온 명령어 복붙)
다섯번째로는 아나콘다에 필요한 버전 다 깐 다음에 pip install 해서 필요 한 걸 받아주면 된다.
아나콘다와 pip는 서로 개별적이기에 상호 버전 체킹이 안된다. 아나콘다 공식 블로그에 따르면 서로 충돌날 수 있기에 선 아나콘다 설치 후 pip 설치를 하라고 했다.
그리고 pip 설치시에는 꼭 파이썬 버전을 체크해서 그에 맞는 버전을 선택해야 한다. 최신 버전으로 설치시 웬만하면 파이썬 3.x를 지원할 것이나.. 혹시 모르니까 PyPi 사이트 들어가서 realease history 보면서 파이썬 버전에 맞는지 봐야 한다.
혹자는 미칠것 같은 버전 관리를... dependency hell이라고 부르던데 ㅋㅋㅋㅋ
나는 나중에 읽어보도록 하겠다.
마지막으로는
With conda, you can create, export, list, remove, and update environments that have different versions of Python and/or packages installed in them. Switching or moving between environments is called activating the environment. You can also share an environment file.
그러므로, 가상환경 관리에 필요한 정보는 공홈에 다 있으니까 한번씩 심심하면 봐주는 것도 좋다.
Cheat sheet도 있으니까 Command Line 생각 안나면 가끔씩 쳐다봐주자.
이렇게 셋팅해도 좋지만 요즘은 도커로 환경 설정하는 것도 좋은데...
그건 나중에 공부해서 한번 올리도록 해보겠다.
(혹시나 틀린거 있음 댓글로 남겨주시기 바랍니다.)
'개발공부 > 디버깅 노트' 카테고리의 다른 글
Key already registered with the same priority: GroupSpatialSoftmax (0) | 2021.10.20 |
---|---|
UnicodeDecodeError: 'cp949' codec can't decode byte 0xeb in position 1251: illegal multibyte sequence (0) | 2021.09.02 |