[Python] 가상환경 및 모듈 설치
by Roel Downey728x90
반응형
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
반응형
'Python' 카테고리의 다른 글
[Python] 파라미터 앞에 *, ** 의 의미? (*args, **kwargs) (0) | 2021.05.10 |
---|---|
[Python] 우분투(Ubuntu)에서 pip & pip3 설치(install) 방법 (0) | 2021.05.07 |
[Python] 곱집합(Cartesian product) 구하기 - product (0) | 2021.05.06 |
[Python] 삼각형 별찍기 - sequence type의 * 연산 (0) | 2021.05.06 |
[Python] sequence 멤버를 하나로 이어붙이기 - join (0) | 2021.05.06 |
블로그의 정보
What doing?
Roel Downey