본문 바로가기
Develop

Python3 가상환경 만들기 (venv)

by 너드나무 2022. 5. 9.
728x90

들어가며...

프로젝트별 개발 환경을 구축하기 위해 가상환경을 생성하여 패키지 관리를 용이하게 수행할 수 있도록 생성해본다.

사전 준비

1. python3-venv 패키지 설치
# sudo apt-get install python3-venv
2. python3 프로젝트 생성
$ python3 -m venv {프로젝트명}
3. 가상환경 확인
# sudo apt-get install tree
$ tree {프로젝트}
{프로젝트}
├── bin
│   ├── activate
│   ├── activate.csh
│   ├── activate.fish
│   ├── easy_install
│   ├── easy_install-3.7
│   ├── pip
│   ├── pip3
│   ├── pip3.7
│   ├── python -> python3
│   └── python3 -> /usr/local/bin/python3
├── include
├── lib
│   └── python3.7
├── lib64 -> lib
└── pyvenv.cfg

코드 관리

  1. 처음 가상환경 생성 시 코드 관리에 대해 어려움을 겪을 수 있다.
  2. 간단하게 프로젝트 내에 src 등 디렉토리 생성 후 코드 관리를 진행하면 된다.
$ tree {프로젝트} -L 2
{프로젝트}
├── LICENSE.md
├── bin
├── include
├── lib
│   └── python3.7
├── lib64 -> lib
├── pyvenv.cfg
└── src
    ├── README.md
    ├── __pycache__
    ├── db
    ├── main.py
    ├── requirement.txt
    ├── robots.txt
    ├── routers
    └── utils

차이점

1. 가상환경 진입
$ source {프로젝트}/bin/activate
(test) {ID}@{Server}:$

2. 가상환경 나가기
$ deactivate
{ID}@{Server}:$
  1. 가상환경에 진입하여 pip 작업 시 가상환경 구성을 수행한 python 버전에 의존하여 설치된다.
  2. 패키지 설치는 해당 프로젝트 내 바이너리가 생성되므로 유저 및 root와 독립적으로 패키지를 관리할 수 있다.
  3. 이는, pip freeze > requirement.txt 로 의존성 관리 시 CI/CD와 접목하여 활용할 수 있다.
  4. 관리하는 프로젝트가 늘어날수록 이해도가 높아질 수 있다.
    1. 버전 충돌로 인해 코드가 수행되지 않는 이슈는 경험해보는 것도 좋다. (토이 프로젝트)
728x90
반응형

'Develop' 카테고리의 다른 글

[SQL] 불필요한 쿼리 제거 작업  (0) 2024.05.08
[Python] Subprocess, 터미널 명령어 활용 방법  (0) 2024.05.03
지도 검색 알고리즘  (0) 2022.05.09
커서 페이지네이션 구현  (0) 2022.05.09
FCM 알림 시스템 구현  (0) 2022.05.09