IT_World
[package]requirements.txt 패키지 관리 및 list freeze 정리 본문
환경 os : Ubuntu 18.64
파이썬으로 프로젝트를 진행하게 되면 pip으로 여러 패키지를 설치하게 된다.
pip list를 입력하면 pip으로 현재 가상 환경에 설치된 모든 패키지가 나온다.
$ pip list
어쨌든 이 패키지들을 그대로 다른 환경에 설치하고 싶을 때는 requirements.txt를 이용해야 한다.
requirements.txt는 현재 가상환경에 설치된 패키지 목록이 나열되어있는 텍스트 파일이다.
이름이 requirements.txt로 정해진 건 아니다. re.txt 등등 마음대로 지어도 되지만, 하나의 룰이다.
대부분 github나 project에서 requirements.txt라는 이름을 사용하고 있으니 웬만하면 requirements로 쓰는 것이 좋다.
requirements.txt 생성은 어떻게 할까
$ pip freeze > requirements.txt
보통
$ cd/home/사용자이름 |
밑에 파일이 있다.
만약 파일이 안 보일 경우
$ locate requirements.txt
를 통해 파일을 찾아준다.
파일을 열어보면 다음과 같이 버전 정보까지 정리되어 있다.
일일이 패키지를 설치해줘야 한다. 이때 일일이 설치하지 않고 패키지들을 기록해놓을 수 있는 명령어가 pip freeze이다.
그다음 base에 들어있는 가상 환경을 그대로 옮길 가상환경 torch로 변경해준다.
가상환경을 바꿔준 후 다음 명령을 실행하면 모든 패키지를 한 번에 설치해준다.
pip install에 -r 옵션과 함께 패키지 목록이 적힌 파일명을 인자로 주면 된다.
$ pip install -r requirements.txt
잘 설치되었는지 보려면 앞에 적어놓은 pip list를 사용해도 되지만 pip freeze 사용해도 된다.
$ pip list
또는
$ pip freeze
tensorboard==2.5.0 같은 경우, tensorboard라는 패키지를 2.5.0 version으로 버전을 지정해서 설치한다는 뜻이다.
하지만 정확히 2.5.0 버전이 아닌, 단순히 해당 버전 이상을 설치하고 싶을 수 있다.
이럴 땐 다음과 같이 해주면 된다.
$ tensorboard>=2.5.0
만약 2 버전 대에서 무작위로 치하고 싶다면 아래처럼 작성해주면 된다.
$ tensorboard>=2.*
package list freeze difference 및 option 정리
패키지는 대소 문자를 구분하지 않는 정렬 순서로 나열된다.
list : 편집 가능한 항목을 포함하여 설치된 패키지를 나열
freeze : 설치된 패키지를 요구 사항 형식으로 출력
list
Options | Description | Examples |
-o, --outdated | 오래된 패키지 나열 | $python -m pip list --outdated |
-u, --uptodate | 최신 패키지 나열 | $pip list -u |
-e, --editable | 편집 가능한 프로젝트를 나열 | $python -m pip list -e |
-l, --local | 전역 액세스 권한이있는 virtualenv에있는 경우 전역으로 설치된 패키지를 나열하지 말기 |
$pip list --local |
--user | 사용자 사이트에 설치된 출력 패키지 만 | $pip list --user |
--path <path> | 패키지 나열을 위해 지정된 설치 경로로 제한/여러 번 사용가능 | $pip list --path |
--pre | 시험판 및 개발 버전을 포함기본적으로 안정된 버전 만 찾음 | $pip list --pre |
--format <list_format> | 출력 형식을 열 (기본값), 고정 또는 json 중에서 선택 | $pip list --format columns |
--not-required | 설치된 패키지의 종속성이 아닌 패키지를 나열 | $pip list --outdated --not-required |
--exclude-editable | 출력에서 편집 가능한 패키지를 제외 | $pip list--exclude-editable |
--include-editable | 출력에서 편집 가능한 패키지를 포함 | $pip list--include-editable |
--exclude <package> | 출력에서 지정된 패키지 제외 | $python -m pip list--exclude |
-i, --index-url <url> | Python 패키지 색인의 기본 URL | |
--extra-index-url <url> | --index-url 외에 사용할 패키지 색인의 추가 URL | |
--no-index | 패키지 색인을 무시 (대신 --find-links URL 만 확인) | |
-f, --find-links <url> | html 파일에 대한 URL 또는 경로 인 경우 sdist (.tar.gz) 또는 wheel (.whl) 파일과 같은 아카이브에 대한 링크를 구문 분석한다. 디렉토리 인 로컬 경로 또는 file : // URL이면 디렉토리 목록에서 아카이브를 찾음 VCS 프로젝트 URL에 대한 링크는 지원되지 않는다. |
출처 : https://pip.pypa.io/en/stable/cli/pip_list/
freeze
Options | Description |
-r, --requirement <file> | 출력을 생성 할 때 주어진 요구 사항 파일의 순서와 주석을 사용하십시오. 이 옵션은 여러 번 사용가능 |
-f, --find-links <url> | 출력에 추가 될 패키지를 찾기위한 URL |
-l, --local | 전역 액세스 권한이있는 virtualenv에있는 경우 전역 설치된 패키지를 출력하지 말기 |
--user | 사용자 사이트에 설치된 출력 패키지 만 |
--path <path> | 패키지 나열을 위해 지정된 설치 경로로 제한 (여러 번 사용할 수 있음) |
--all | 출력에서 다음 패키지를 건너 뛰지 말기 : pip, deploy, wheel, setuptools |
--exclude-editable | 출력에서 편집 가능한 패키지를 제외 |
--exclude <package> | 출력에서 지정된 패키지 제외 |
출처 : https://pip.pypa.io/en/stable/cli/pip_freeze/
'OS > Ubuntu' 카테고리의 다른 글
[linux/shell] alias vi~/.bashrc source ~/.bashrc (0) | 2021.09.11 |
---|---|
[Ubuntu] scp 서버간 데이터 전송하기 file, directory (파일 전송 프로토콜 / 파일 보내기) (0) | 2021.06.02 |
[Linux] tree Command(트리 명령)사용 (0) | 2021.05.23 |
[docker] 도커 이미지(Image)와 컨테이너(Container) 차이 (0) | 2021.05.11 |
[docker] 기초 :설치부터 - Container 까지 (0) | 2021.05.07 |