Roel Notebook

[Python] 가상환경 및 모듈 설치

by Roel Downey
728x90
반응형

1. 가상환경이란?

  • 기존에 설치된 파이썬 환경과 구분하여 특정한 모듈만을 포함한 독립된 파이썬 환경을 만들어 해당 환경에서 프로젝트를 진행할 수 있게 해주는 기능이다.

2. 가상환경을 사용하는 이유

  • 하나의 PC에 설치된 모듈이 하나의 프로젝트에서 사용하더라도 다른 프로젝트에서 사용하지 않을 수 있다.
  • 프로젝트별로 사용해야할 모듈의 버전이 상이할 수 있다.

3. 가상환경 생성 방법

  • 가상환경 생성은 Window와 Linux 계열은 크게 차이가 없다.
  • "python -m venv <가상환경 이름>" 으로 가상환경을 생성한다.
  • 가상환경 이름은 별도로 생성 가능하지만 대부분 관례로 .venv를 사용한다.

3.1. Linux 계열

$ cd <프로젝트 디렉토리>
$ python -m venv .venv

3.2.Window 계열

> cd <프로젝트 디렉토리>
> python.exe -m venv .venv 

4.가상환경 활성화

4.1.Linux 계열

  • 리눅스에서는 source 명렁어 또는 .명령어를 통해서 활성화가 가능하다.
  • 리눅스에서는 가상환경이 활성화 되면 명령프롬프트 맨 앞에 가상환경의 이름이 추가된다.
$ ..venv/bin/activate
​
또는
​
$ source .venv/bin/activate

4.2.Window 계열

  • Window에서는 Linux와는 Scripts 폴더의 activate.bat 파일로 가상환경 활성화가 가능하다.
  • 리눅스와 마찬가지로 가상환경이 활성화되면 명령프롬프트 맨 앞 부분이 가상환경의 이름이 추가된다.
.\.venv\Scripts\activate.bat

5.가상환경에 모듈 설치

  • 가상환경이 활성화된 상태에서 설치해야 해당 가상환경에 설치된다.
  • 가상환경 설치에는 pip 명령어를 사용하므로 Linux 환경으로 설명한다.

5.1.모듈 설치

pip install <모듈 이름>

5.2.모듈 리스트 내보내기

  • 현재 가상환경 또는 PC에 설치된 python 모듈의 리스트 및 버전을 파일로 내보낸다.
# pip_install.txt 파일로 설치된 파이썬 모듈 리스트 내보내기
$ pip freeze >> requirements.txt 

5.3.모듈 리스트 파일로 모듈 한꺼번에 설치

  • 위의 모듈 리스트 내보내기에서 생성한 파일에 있는 리스트를 한번에 설치한다.
  • 설치 명령에어 -r 옵션을 사용고 리스트 파일 이름을 입력한다.
$ pip install -r requirements.txt

5.4.파이썬 모듈 다운로드 및 설치

  • 파이썬 프로젝트를 설치할 경우 설치할 PC가 인터넷을 사용할 수 없는 환경일 때가 있다.이때 인터넷이 연결된 PC에서 해댱 프로젝트에 필요한 모듈을 미리 다운받은 후, 해당 모듈을 설치할 PC로 복사해서 설치가 가능하다.
  • 아래의 예시는 이미 프로젝트에 필요한 모듈이 설치되어 있고 이를 다른 인터넷이 안되는 PC에 설치할때의 예제이다.
  • 다운로드 받은 모듈은 .whl의 확장자로 되어 있다.
$ pip freeze > requirements.txt
$ mkdir download_module
$ cd download_module
$ pip download -r ./requirements.txt
​
# 프로젝트 폴더를 설치 PC로 복사후  가상환경 생성 및 활성화  
# --find-links는 위에서 모듈을 다운받은 폴더로를 설정.
​
$ pip install --no-index --find-links=./download_module -r ./requirements.txt

6.가상환경 비활성화

6.1.Linux 계열

  • 가상환경이 활성화된 상태에서 아래의 명령어를 입력하면 가상환경이 비활성화 된다.
(.venv) $ deactivate

6.2.Window 계열

  • 리눅스와는 다르게 deactivate.bat 파일을 실행해야 한다.
.\.venv\Scripts\deactivate.bat 
728x90
반응형

블로그의 정보

What doing?

Roel Downey

활동하기