Tips

Python 가상환경 비교, Anaconda/ Homebrew/ Git/ Docker 간단 정리 및 설치 Troubleshooting

Hyunie 2021. 8. 12. 22:50
728x90
반응형

(포스팅 할 수록 느끼는건데 티스토리 편집기 진짜 별로다.. 벨로그로 갔어야했나...)

 

*간단한 CLI 명령어

Python version 확인:

 python --version

 

Directory 삭제:

`rm -r the name of the directory you want to delete`

 - Directory가 비어있지 않으면 삭제가 안됨

`rm -rf the name of directory you want to delete`

 - 비어있지 않은 directory도 삭제

 

*가상환경

가상환경 사용 이유:

 원하는 환경을 구축하기 위해 필요한 패키지만 담아놓는 바구니 역할

 프로젝트마다 요구하는 버전이나 패키지가 다를 수 있는 데, 이 때 충돌이 일어나기 쉽기 때문에 프로젝트 별 환경을 독립적으로 구축하기위해 사용

 가상 환경 모듈의 종류: conda, pyenv, venv, virtualenv...

  • conda

Anaconda Python을 통해 설치하는 가상환경 (pyenv 환경에서는 정상적으로 가상환경이 설치되지 않음)

머신러닝, 데이터 사이언스 분야의 다양한 라이브러리들이 설치되어있음. Requirements.txt로 패키지 관리.

설치가 간편하다는 장점이 있다.

 

  • pyenv

 Python version manager. 가상환경 패키지 관리는 virtualenv 등과 연계해서 사용

 Window는 지원하지 않음. 

 Python 3.3과 3.4에서 사용하던 가상환경 도구였지만 3.6이후부터는 사용하지 말 것을 권고한다고 함.

 

  • virtualenv

 Python version2부터 사용되던 가상환경 라이브러리 (3에서도 사용 가능). 최근에는 많이 사용하지 않는다고 한다.

 

  • venv

 Python 3.3버전 이후부터 기본 모듈에 포함. 현재 설치된 python version을 기준으로 패키지 가상환경이 제공된다.

 venv를 사용하기 위해서는 패키지 설치를 위한 pip이나 easy_install, 가상환경 관리를 위한 pyenv, virtualenvwrapper와 같은 추가적인 패키지를 설치해야해서 번거로움이 따르기 때문에 venv보다는 pipenv를 더 많이 사용한다고 한다.

 

  • pipenv

 Python에서 권장하는 가상환경 모듈. pipfile.lock을 기반으로 패키지 관리한다.

 virtualenv로 가상환경을 생성하면서 pip으로 패키지를 자동 설치 - pip으로 패키지를 추가 설치하면 자동으로 pipfile에 변경사항이 반영됨

 의존성 관리를 잘 처리한다는 점에서 pip freeze > requirements.txt를 사용하는 conda와 비교했을 때 장점이 있다 (충돌 발생 시 pipenv graph 명령어를 이용해 dependency tree 확인 가능). 같은 이름의 가상환경을 생성할 수 있고, 프로젝트 directory자체가 가상환경이 되기 때문에 더 좋기도 하다. (개발 폴더를 삭제하면 가상환경도 삭제됨)

 

  • docker

 가상환경은 python 프로젝트의 종속성 구조만 보는 반면 docker는 운영체제 이미지의 전체가 포함되어 있다. 즉, 어떤 OS환경에서도 설치할 수 있다는 장점이 있고 local에 생성되지 않기 때문에 다운로드 받는 OS가 어떤 환경이든 프로젝트 시와 동일한 환경을 구축할 수 있다.

 

* Homebrew

 Mac에서 패키지를 관리하기 쉽게 만들어주는 software. 터미널에 brew list, update, upgrade같은 명령어로 프로그램 설치, 업그레이드를 손쉽게 할 수 있음

brew를 안쓰면??

*Git

작업 version 관리 시스템. 원격 코드 저장소인 github과 연동하여 software 개발, 버전 관리, 협업 등 여러 기능 제공


*설치 troubleshooting

Anaconda

Trouble: 처음에 Application 폴더에다 설치했더니 launchpad에서 "You do not have permission to open the application" 에러 발생 (터미널이나 directory에서는 실행 됨)

Solution:

1. 기존 경로에 설치된 anaconda app 삭제 (Move to trash or Appcleaner 사용) *바로가기도 삭제해야함

2. cli에서 아나콘다 설치된 경로로 들어가서 rm -rf anaconda3로 설치 폴더 삭제

3. .zshrc에 conda 환경변수 삭제 ← 이건 어떻게 하는지 모르겠다. 일단 해결한 방법은

 - vi ./zshrc로 zshrc 파일 열기

 - 아무 키나 누르니까 편집 됨  편집키: i, 편집 후 저장: :wq

# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/miniconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/miniconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        \export PATH="$PATH:/miniconda3/bin"
    fi
fi
unset __conda_setup
# <<< conda init <<<

 - 이런 글만 떠서 경로를 새로 설치할 경로로 수정한 뒤 :wq 눌렀으나 read only라고 저장 안됨

 - :wq누르니까 저장 안 됨, :q 누르니까 override 하겠냐고 물어봐서 yes 했더니 그냥 문서에서 나와짐

 - 잘 수정됐는지 확인하려고 다시 zshrc 파일 열었더니 빈 파일만 뜸

 - 그냥 초기화 됐구나 잘됐다 싶어서 다시 아나콘다 설치함

4. 다시 Anaconda 설치시 defalut 경로에 설치함 (opt)

5. 문제 해결!

 

VSCode

Trouble: CLI에서 code 명령어 실행 안됨

Reason: VScode에서 path를 인지하지 못함 (zsh: command not found:code)

Solution:

1. VSCode 실행

2. Command Palette 열기 (view > Command Palette 또는 단축키 shift+Command+P)

3. 'shell' 검색

4. 검색 결과 중 'Shell Command: Install 'code' command in PATH 클릭

5. 'Shell command 'code' sucessfully installed in PATH.' 라는 메세지가 뜨면 성공

6. 터미널 가서 code . 실행되는지 확인하기

 

728x90
반응형