티스토리 뷰
12. 가상 환경 및 패키지
12.1. 소개
- 머신러닝이나 통계를 포함하여 파이썬에서 표준 라이브러리의 일부로 제공되지 않는 패키지와 모듈을 사용할 떄가 많다.
- 상황에 따라 라이브러리의 특정 버전이 필요 할 때가 있다.
- 예를 들어 A프로그램은 L라이브러리 1.0 버전이 필요하지만, B프로그램은 2.1 버전의 라이브러리가 필요할 수도 있기 떄문이다.
- 이러한 문제의 해결 방법이 바로 가상환경(Virtual Environment)이다.
12.2. 가상환경 만들기
- 가상환경을 만드는 법은 다음 블로그에 아주 잘 설명이 되어 있다.
https://tutorial.djangogirls.org/ko/django_installation/ - 가상 환경을 만들고 관리하는 데 사용되는 모듈을
venv
라고 한다.venv
는 보통 사용자가 쓸 수 있는 최신 버전의 파이썬을 설치한다. 시스템에 여러 버전의 파이썬이 있다면 원하는 버전의 파이썬을 선택할 수 있다.
-
가상환경 만들려면, 원하는 디렉터리를 결정하고,
venv
모듈을 스크립트로 실행하는데 디렉터리 경로를 명령어 다음에 넣는다.python -m venv directory_name
해당 이름의 디렉터리가 존재하지 않는다면
directory_name
디렉터리를 만들고, 그 안에 파이썬 인터프리터의 사본, 표준 라이브러리 및 다양한 지원 파일이 들어있는 디렉토리를 만든다. -
가상 환경을 만들었으면, 가상 환경은 다음과 같이 활성화 한다. (윈도우 기준)
directory_name\Scripts\activate
쉽게 말하면 가상환경 폴더에 있는
Scripts\activate.bat
파일은 cli에서 실행시키면 되는 것이다. -
가상 환경을 활성화하면, 셸의 프롬프트가 변경되어 사용 중인 가상 환경을 보여주고, 환경을 수정하여
python
을 실행하면 특정 버전의 파이썬이 실행되도록한다.C:\Users\user_name>directory_name\Scripts\activate (directory_name) C:\Users\user_name>python Python 3.5.1 (default, May 6 2016, 10:59:36) ... >>> import sys >>> sys.path ['', '/usr/local/lib/python35.zip', ..., '~/envs/directory_name/lib/python3.5/site-packages'] >>>
12.3. pip로 패키지 관리하기
-
pip라는 프로그램을 사용하여 패키지를 설치, 업그레이드 및 제거할 수 있다.
-
pip는 파이썬 패키지 인덱스(Python Package Index, https://pypi.org)에서 패키지를 설치한다.
-
pip list
명령어를 통해 설치된 패키지들과 버전의 리스트를 확인 할 수있다.(venv) C:>pip list Package Version ---------------------------------- -------- alabaster 0.7.12 anaconda-client 1.7.2 ... xlwt 1.3.0 zict 0.1.4 zipp 0.3.3
-
pip search <description>
을 통해 설명에 해당 검색어를 포함하고 있는 패키지를 검색할 수 있다.(venv) C:>pip search search astronomy skyfield - Elegant astronomy for Python gary - Galactic astronomy and gravitational dynamics. novas - The United States Naval Observatory NOVAS astronomy library astroobs - Provides astronomy ephemeris to plan telescope observations PyAstronomy - A collection of astronomy related tools for Python. ...
-
pip는
search
,install
,uninstall
,freeze
등의 많은 부속 명령어들을 가지고 있다. -
패키지 설치는
install
명령어 뒤에 패키지 이름을 넣어서 할 수 있다.(venv) C:>pip install novas Collecting novas Downloading novas-3.1.1.3.tar.gz (136kB) Installing collected packages: novas Running setup.py install for novas Successfully installed novas-3.1.1.3
-
패키지 이름 뒤에
==version_number
를 붙여서 특정 버전의 패키지를 설치 가능하다.(venv) C:>pip install requests==2.6.0 Collecting requests==2.6.0 Using cached requests-2.6.0-py2.py3-none-any.whl Installing collected packages: requests Successfully installed requests-2.6.0
-
이미 설치 되어있는 패키지와 같은 버전의 패키지를 설치하려고 하면 이미 그 버전이 설치 되어 있음을 아리고 아무것도 하지 않는다.
(venv) C:>pip install pandas==0.24.2 Requirement already satisfied: pandas==0.24.2 in c:\programdata\anaconda3\lib\site-packages (0.24.2) Requirement already satisfied: pytz>=2011k in c:\programdata\anaconda3\lib\site-packages (from pandas==0.24.2) (2018.9) Requirement already satisfied: python-dateutil>=2.5.0 in c:\programdata\anaconda3\lib\site-packages (from pandas==0.24.2) (2.8.0) Requirement already satisfied: numpy>=1.12.0 in c:\programdata\anaconda3\lib\site-packages (from pandas==0.24.2) (1.16.2) Requirement already satisfied: six>=1.5 in c:\programdata\anaconda3\lib\site-packages (from python-dateutil>=2.5.0->pandas==0.24.2) (1.12.0)
-
pip install --upgrade
를 실행하여 패키지를 최신 버전으로 업그레이드 시킬 수 있다.(venv) C:>pip install --upgrade requests Collecting requests Installing collected packages: requests Found existing installation: requests 2.6.0 Uninstalling requests-2.6.0: Successfully uninstalled requests-2.6.0 Successfully installed requests-2.7.0
-
pip uninstall package_name
을 하면 해당 환경에서 패키지를 제거한다.(venv) C:>pip uninstall pandas
-
pip freeze
는 설치된 패키지의 리스트와 비슷하게 생겼지만pip install
에서 기대하는 형식으로 출력된다.(venv) C:>pip freeze > requirements.txt (venv) C:>cat requirements.txt novas==3.1.1.3 numpy==1.9.2 requests==2.7.0
-
일반적으로는 이 목록을
requirements.txt
파일에 넣어서 프로그램의 일부로 제공하는 것이다. 사용자는pip install -r "requirements.txt"
로 모든 필요한 패키지를 설치할 수 있다.(venv) C:>pip install -r requirements.txt Collecting novas==3.1.1.3 (from -r requirements.txt (line 1)) ... Collecting numpy==1.9.2 (from -r requirements.txt (line 2)) ... Collecting requests==2.7.0 (from -r requirements.txt (line 3)) ... Installing collected packages: novas, numpy, requests Running setup.py install for novas Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0
-
pip에는 더 많은 옵션과 명령어들이 있다. 이에 관한 것은 cmd에서
pip help
를 입력하여 보거나 파이썬 모듈 설치하기에서 지침을 참고하면 된다. 패키지를 작성했을 때 파이썬 패키지 인덱스에서 사용할 수 있게 하려면, 파이썬 모듈 배포하기 지침을 참고하면 된다.
Reference: 파이썬 자습서
'컴퓨터공학 > 파이썬' 카테고리의 다른 글
Python 101 - 2장. 예약어, 키워드, 변수, 상수, 상수 리터럴 (0) | 2019.09.22 |
---|---|
Python 101 - 1장. 파이썬 설치 및 개발환경 설정(PyCharm) (0) | 2019.09.15 |
파이썬 자습서 11장. 표준 라이브러리 둘러보기 -- 2부 (2) (0) | 2019.08.03 |
파이썬 자습서 11장. 표준 라이브러리 둘러보기 -- 2부 (1) (0) | 2019.08.01 |
파이썬 자습서 10장. 표준 라이브러리 둘러보기 (3) (0) | 2019.07.31 |
- Total
- Today
- Yesterday
- Break
- 파이썬
- 머신러닝
- 네이버
- ML
- Machine Learning
- Math
- Else
- continue
- 고급 파이썬
- 삼항연산자
- 파이선
- 핵데이
- 변수
- 디폴트 파라미터
- HACKDAY
- 클래스
- list
- stitcher
- random
- python
- 네이버 인턴
- sys
- 모듈
- DateTime
- 리스트
- 튜플
- ImageStitching
- import
- 딕셔너리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |