ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 가상환경 비교, Anaconda/ Homebrew/ Git/ Docker 간단 정리 및 설치 Troubleshooting
    Tips 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
    반응형

    댓글