PIP Install Option

 

pip Install Option

  • pip install –help로 Option 리스트를 볼 수 있음
  • help 명령어는 Keyword를 한눈에 보기 어려워 Option List를 정리하고자 함
  • 현재문서는 단순 설명을 번역하는 수준밖에 되지 않지만 직접 사용해보면서 설명이나 know-how를 추가하겠음

설치 옵션

-r, –requirement

  • requirements file을 명시하여 설치하고자 여러개의 package를 한번에 설치

  • requirements file의 형식은 다음과 같음

    # Python Excel
    pyexcel==0.5.8
    pyexcel-xls==0.5.7
    pyexcel-xlsx=0.5.6
        
    # DB Connector
    pyhive==0.6.0
    

-c –constraint

  • 설치 package의 version에 대한 제약 조건 파일을 명시
  • constraint file은 requirements.txt 파일에 -c 형태로도 명시 할 수 있음
  • constraint file은 requirements.txt 파일과 구분하여 package 관리를 좀 더 깔끔하게 할 수 있음
  • pip 8.0 이후에는 hash key를 이용한 버전 제약 조건을 관리하는것이 더 좋을 수 있음
  • 참조: https://stackoverflow.com/questions/34645821/pip-constraints-files/34653182

-no-deps

  • 의존성 package들을 설치 하지 않음

--pre

  • 시험판이나 개발 버전을 설치 할 수 있도록 함
  • 기본적으로 pip는 stable version만을 설치함
  • module 개발을 한다거나 필요한 기능의 module을 테스트 할 때 활용 할 수 있음

--e, –editable <path/url>

  • setuptools의 develop mode 처럼 패키지를 수정 가능한 모드로 설치 할 수 있음
  • project path를 명시하거나 형상관리(Git, SVN 등)툴의 url을 명시 할 수 있음

-t, –target

  • 패키지를 설치하고자 하는 경로를 명시하여 설치 할 때 사용
  • 기본적으로 이 옵션은 기존 파일/폴더를 대체하지 않고 해당 명령이 수행 될 때만 경로를 변경해서 설치
  • 의 기존 패키지를 새 버전으로 바꾸려면 –upgrade 옵션을 사용할 것

--user

  • 사용자 경로에 설치함

–root

  • root directory에 설치를 한다고 하는데 잘 모르겠음

–prefix

  • lib,bin 및 기타 최상위 폴가 있는 설치 접두사
  • -t, –user, –root, –prefix 이 것들은 정확히 무엇을 위한 옵션인지는 모르겠음.
  • python package directory 관리를 위한 옵션이라는 것을 알겠으나,
  • 어떤 디렉토리들을 설정하고 그 디렉토리들이 python에서 어떻게 참조되는지 명확한 이해가 필요할 듯
  • 또한 직접 사용해보면서 삽질을 많이 해봐야겠음
  • 참조: 링크

-b, –build

  • 패키지 압축해제 및 빌드할 디렉토리 명시
  • 초기 빌드는 임시 디렉토리
  • 임시 디렉토리의 위치는 Linux에서는 TMPDIR 환경 변수를 설정하고 Windows에서는 TEMP 환경 변수를 설정하여 제어 할 수 있음
  • 빌드가 될 때 실패되면 빌드 디렉토리는 clean 되지 않음

-src

  • 편집 가능한 프로젝트를 check out할 디렉토리
  • virtualenv의 기본값은 “ / src”
  • 전역 설치의 기본값은 “ / src”

-U, –upgrade

  • 패키지를 최신 버전으로 업그레이드
  • 종속성 처리는 upgrade-strategy에 따름

--upgrade-strategy <upgrade_strategy>

  • 종속성 업그레이드를 처리하는 방법 결정[default: only-if-needed]
  • 종속성 업그레이드 처리 방법은 두 종류가 있고 자세한 설명은 다음과 같음
    · “eager”: 현재 설치된 버전이 업그레이드 된 패키지의 요구 사항을 충족 하는지 상관 없이 종속성이 업그레이드 됨
    · “only-if-needed”: 업그레이드 된 패키지의 요구 사항을 충족하지 않는 경우에만 업그레이드 됨

--force-reinstall

  • 무조건 모든 패키지를 재설치함
  • 최신 버전의 패키지라도 무조건 재설치함

--l, –ignore-installed

  • 설치가 되어있는 패키지들은 무시함

--ignore-requires-python

  • Requires-Python 정보를 무시함

--no-build-isolation

  • 최신 소스 배포를 빌드 할 때 isolation을 비활성화함
  • 이 옵션을 사용하는 경우 PEP 518에서 지정한 빌드 종속성이 이미 설치되어 있어야함

--install-option

  • setup.py install 명령에 arguments들을 명시
  • ex) –install-option=”–install-scripts = /usr/local/bin”
  • 여러개의 arguments를 명시할 수 있음
  • 디렉토리 경로 옵션을 추가하는 경우에는 절대 경로를 사용해야함

--global-option

  • setup.py global options을 명시

--compile

  • Python 소스 파일을 바이트 코드로 컴파일

--no-compile

  • Python 소스 파일을 바이트 코드로 컴파일 하지 않음

--no-warn-script-location

  • PATH 외부에서 설치 할 때 warn 표시하지 않음

--no-warn-conflicts

  • 깨진 의존성에 대해 warn 표시하지 않음

--only-binary

  • 소스 패키지를 사용하지 않음
  • 여러번 명시 할 수 있으며 명시 할 때 마다 기존 값에 추가되는 형태
  • format_control의 종류는 2가지고 있고 자세한 설명은 다음과 같음
    · all: 모든 소스 패키지 비활성화
    · none: 세트를 비우기 위해 사용됨. 하나이상의 패키지를 비우려면 패키지 이름 사이에 comma 사용
  • 바이너리 배포판이 없는 패키지의 경우 이 옵션을 사용하면 설치 되지 않음\

--prefer-binary

  • 최신 소스 패키지보다 오래된 바이너리 패키지 우선 설치

--no-clean

  • build directory들을 clean up 하지 않음

--progress-bar <progress_bar>

  • progress의 종류를 설정함[pretty off on ascii emoji]

-i, –index-url

  • Python Package Index의 기본 url 명시(default: http://pypi.org/simple)
  • PEP 503 (단순 저장소 API)를 준수하거나 또는 동일한 형식으로 배치된 로컬 디렉토리 url을 사용해야함

--extra-index-url

  • python package index를 추가 url들을 명시
  • --index-url과 동일한 정책을 따름

--no-index

  • package index 무시
  • html 파일의 URL 또는 경로인 경우 아카이브에 대한 링크를 구문 분석함
  • 로컬 경로 또는 file:// url이 디렉토리인 경우 디렉토리 목록에서 아카이브를 찾음.
  • 의존성 링크의 프로세싱을 가능하게 함