ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [python] vscode pyenv로 python 로컬 개발 환경 구성하기
    ✍️ 개인 스터디 기록 2023. 1. 12.

    1. pyenv 란?

    프로젝트에 따라 파이썬 버전이 다른 경우, pyenv로 가상 환경을 만들어 사용하면 프로젝트 별로 프로젝트에서 사용하는 버전과 패키지들을 분리해 관리할 수 있다.

     

    pyenv로 파이썬 설치하기

    pyenv install 3.11.0

    install 할 경우 macOS의 경우 아래 기본 경로에 파이썬이 설치된다.

    pyenv로 설치한 파이썬이 저장되는 경로: ~/.pyenv/versions

     

    $ cd ~/.pyenv/versions
    $ ls
    3.10.4  3.11.0  3.9  3.9.15  fastapi  recsys

     

    pyenv로 설치 한 파이썬 버전 및 가상환경 확인하기

    pyenv versions 명령으로 설치된 버전과 가상환경을 확인 할 수 있습니다.

     

    $ pyenv versions
    * system (set by /Users/han/.pyenv/version)
      3.9
      3.9/envs/recsys
      3.9.15
      3.10.4
      3.10.4/envs/fastapi
      3.11.0
      fastapi
      recsys

     

    pyenv로 설치 한 파이썬 삭제하기

    $ pyenv uninstall 3.6.2

     

    pyenv로 가상환경 만들기

    pyenv virtualenv 3.11.0 가상환경명

    $ pyenv virtualenv 3.11.0 fastapi

     

    가상환경 사용하기

    가상환경을 지정하면 터미널에 (가상환경명) 이렇게 현재 가상환경이 표시된다.

    $ pyenv activate fastapi
    (fastapi)  $

     

    2. vscode에 intellisense 설정하기

    vscode에 파이썬 intellisense 설정하기 위해서는 Pylance extension을 설치 해야한다.

    pylance vscode extension 설치

    vscode에 Pylance를 설치하면 타입 채킹, 코드 자동 완성, 자동 모듈 import 등의 파이썬 문법 자동완성 기능을 사용 할 수 있다.

     

    .vscode/settings.json 설정하기

    {
      "python.analysis.typeCheckingMode": "strict", // vscode 타입 채크 관련 규칙 지정
      "python.linting.flake8Args": [ // vscode flake8 lint 설정
        "--max-line-length=119",
        "--exclude=.git,migrations/*,envs/"
      ],
      "python.languageServer": "Pylance" // Pylance 활성화
    }

     

    python.analysis.typeCheckingMode 옵션: Python 3.5 부터 추가된 타입 선언에 기반한 타입 체크 기능을 사용할지 지정 할 수 있다.

    • off : 타입 체크 기능을 사용하지 않겠다.(디폴트 설정)
    • basic: 기본 모드
    • strict: 엄격 모드

    예를 들어 basic모드나 strict모드로 지정하면, None 일 수 도 있는 변수를 for 문으로 순회 하려고 하면 다음과 같이 reportOptionalOperand 에러가 발생하는데

    해당 링크를 눌러보면 해당 경고에 대한 설명을 확인 할 수 있습니다.

     

    해당 경고는 Basic, Strict에서만 에러를 낸다는것을 확인 할 수 있다.

    아래 표에서 false 일 경우 에러를 내지 않는다는 것이고, true일 경우 에러를 낸다는 것을 의미한다.

    그 외 “warning”, “error”와 같은 문자로 나와있는 경우 에러를 내긴 하는데, 에러 수준을 세분화 해서 낸다는 것을 말한다.

     

    각 타입 채킹 모드에 대한 자세한 설명은 여기에서 확인이 가능합니다.

     

    3. vscode에 interpreter 지정

    vscode에 interpreter로 현재 pyenv로 생성한 가상환경을 지정 할 수 있다.

    현재 interpreter가 프로젝트의 버전과 다를 경우 아래 사진 처럼 설치된 모듈을 vscode가 찾지 못하는 문제가 발생 할 수 있다.

     

    vscode 아래 파란 줄에 버전이 표시된 부분을 누르거나 cmd + shift + p 를 누른 후 아래 그림 처럼 Python: Select Interperter를 선택하면 현재 vscode의 interpreter를 설정 할 수 있다.

     

     

    Interperter를 지정한 후 사용하려는 가상환경에 이미 사용하려는 패키지가 설치 되어있다면 더이상 can not be resolved 에러가 발생 하지 않는다.

     

     

    댓글

GitHub: https://github.com/Yesung-Han