반응형

<출처: https://pip.pypa.io/en/stable/cli/pip_download/ >

pip download 명령
--------------------------

사용법
======
[Unix/macOS]
python -m pip download [options] <requirement specifier> [package-index-options] ...
python -m pip download [options] -r <requirements file> [package-index-options] ...
python -m pip download [options] <vcs project url> ...
python -m pip download [options] <local project path> ...
python -m pip download [options] <archive url/path> ...

[Windows]
py -m pip download [options] <requirement specifier> [package-index-options] ...
py -m pip download [options] -r <requirements file> [package-index-options] ...
py -m pip download [options] <vcs project url> ...
py -m pip download [options] <local project path> ...
py -m pip download [options] <archive url/path> ...

설명
=====
패키지 다운로드 위치:
- PyPI (and other indexes) using requirement specifiers.
- VCS project urls.
- Local project directories.
- Local or remote source archives.

pip는 "requirements files"에서 다운로드하는 기능도 지원합니다. requirements 파일은 다운로드할 전체 환경을 쉽게 명시할 수 있는 방법을 제공합니다.

개요
======
pip download는 pip install과 동일한 방식으로 패키지를 확인하고 다운로드하지만, 의존성 패키지를 설치하는 대신, 다운로드한 배포 파일을 지정된 디렉토리(기본값은 현재 디렉토리)에 저장합니다. 이 디렉토리는 나중에 pip install --find-links 옵션의 값으로 사용하여 오프라인 또는 제한된 환경에서 패키지를 설치할 수 있도록 합니다.

pip download에 --platform, --python-version, --implementation, --abi 옵션을 함께 사용하면, 현재 pip가 실행되는 환경과 다른 인터프리터 및 시스템에 맞는 의존성 패키지를 가져올 수 있습니다. 이 옵션들을 사용할 때는 --only-binary=:all: 또는 --no-deps 옵션을 반드시 함께 사용해야 합니다. 주의할 점은, 이 옵션들은 모두 기본적으로 현재 시스템/인터프리터에 맞춰지며, 가장 제한적인 조건(예: platform any, abi none 등)에 맞춰지지 않는다는 것입니다. 현재 인터프리터의 제약 조건에 우연히 일치하는 의존성 패키지(하지만 목표 환경에는 맞지 않는)를 가져오는 것을 방지하려면, 이 옵션들 중 하나를 지정할 때 모든 옵션을 명시하는 것이 좋습니다. 일반적인 의존성 패키지(예: universal wheels, 또는 platform, abi, implementation 제약 조건이 없는 의존성 패키지)는 과도하게 제한된 다운로드 요구 사항에도 여전히 일치할 것입니다. 일부 의존성 패키지가 바이너리 형태로 제공되지 않는 경우, 목표 플랫폼에 맞게 수동으로 빌드하고 --find-links 옵션을 사용하여 pip download가 해당 패키지를 찾을 수 있도록 경로를 지정할 수 있습니다.

옵션
=====
-c, --constraint <file>
주어진 제약 조건 파일을 사용하여 버전을 제한합니다. 이 옵션은 여러 번 사용할 수 있습니다.
(환경변수: PIP_CONSTRAINT)

-r, --requirement <file>
주어진 요구 사항 파일에서 설치합니다. 이 옵션은 여러 번 사용할 수 있습니다.
(환경변수: PIP_REQUIREMENT)

--no-deps
패키지 종속성을 설치하지 않습니다.
(환경변수: PIP_NO_DEPS, PIP_NO_DEPENDENCIES)

--global-option <options>
setup.py 호출에 install 또는 bdist_wheel 명령 전에 추가로 제공할 전역 옵션입니다.
(환경변수: PIP_GLOBAL_OPTION)

--no-binary <format_control>
바이너리 패키지를 사용하지 않습니다. 여러 번 제공될 수 있으며, 각각 기존 값에 추가됩니다. 모든 바이너리 패키지를 비활성화하려면 ":all:"을, 세트를 비우려면 ":none:"을, 또는 쉼표로 구분된 하나 이상의 패키지 이름을 사용할 수 있습니다(콜론 없음). 일부 패키지는 컴파일하기 까다로워 이 옵션을 사용하면 설치에 실패할 수 있습니다.
(환경 변수: PIP_NO_BINARY)

--only-binary <format_control>
소스 패키지를 사용하지 않습니다. 여러 번 제공될 수 있으며, 각각 기존 값에 추가됩니다. 모든 소스 패키지를 비활성화하려면 ":all:"을, 세트를 비우려면 ":none:"을, 또는 쉼표로 구분된 하나 이상의 패키지 이름을 사용할 수 있습니다. 바이너리 배포가 없는 패키지는 이 옵션을 사용하면 설치에 실패합니다.
(환경 변수: PIP_ONLY_BINARY)

--prefer-binary
소스 패키지가 더 최신이더라도 바이너리 패키지를 우선합니다.
(환경 변수: PIP_PREFER_BINARY)

--src <dir>
편집 가능한 프로젝트를 체크아웃할 디렉토리입니다. 가상 환경의 기본값은 "<venv 경로>/src"입니다. 전역 설치의 기본값은 "<현재 디렉토리>/src"입니다.
(환경 변수: PIP_SRC, PIP_SOURCE, PIP_SOURCE_DIR, PIP_SOURCE_DIRECTORY)

--pre
사전 출시 및 개발 버전을 포함합니다. 기본적으로 pip는 안정적인 버전만 찾습니다.
(환경 변수: PIP_PRE)

--require-hashes
반복 가능한 설치를 위해 각 요구 사항과 비교할 해시를 요구합니다. 요구 사항 파일에 있는 모든 패키지에 --hash 옵션이 있으면 이 옵션이 암시됩니다.
(환경 변수: PIP_REQUIRE_HASHES)

--progress-bar <progress_bar>
진행률 표시줄 사용 여부를 지정합니다 [on, off, raw] (기본값: on).
(환경 변수: PIP_PROGRESS_BAR)

--no-build-isolation
최신 소스 배포를 빌드할 때 격리를 비활성화합니다. 이 옵션을 사용하는 경우 PEP 518에서 지정한 빌드 종속성이 이미 설치되어 있어야 합니다.
(환경 변수: PIP_NO_BUILD_ISOLATION)

--use-pep517
PEP 517을 사용하여 소스 배포를 빌드합니다 (--no-use-pep517을 사용하여 레거시 동작을 강제합니다).
(환경 변수: PIP_USE_PEP517)

--check-build-dependencies
PEP 517을 사용할 때 빌드 종속성을 확인합니다.
(환경 변수: PIP_CHECK_BUILD_DEPENDENCIES)

--ignore-requires-python
Requires-Python 정보를 무시합니다. 
(환경 변수: PIP_IGNORE_REQUIRES_PYTHON)

-d, --dest <dir>
패키지를 <dir> 경로에 다운로드합니다.
(환경 변수: PIP_DEST, PIP_DESTINATION_DIR, PIP_DESTINATION_DIRECTORY)

--platform <platform>
<platform>과 호환되는 휠만 사용합니다. 실행 중인 시스템의 플랫폼을 기본값으로 합니다. 이 옵션을 여러 번 사용하여 대상 인터프리터에서 지원하는 여러 플랫폼을 지정할 수 있습니다. 
(환경 변수: PIP_PLATFORM)

--python-version <python_version>
휠 및 "Requires-Python" 호환성 검사에 사용할 Python 인터프리터 버전입니다. 실행 중인 인터프리터에서 파생된 버전을 기본값으로 합니다. 버전은 최대 세 개의 점으로 구분된 정수(예: 3.0.0의 경우 "3", 3.7.0의 경우 "3.7", 3.7.3의 경우 "3.7.3")를 사용하여 지정할 수 있습니다. 주-부 버전은 점 없이 문자열로도 지정할 수 있습니다(예: 3.7.0의 경우 "37"). 
(환경 변수: PIP_PYTHON_VERSION)

--implementation <implementation>
'pp', 'jy', 'cp', 'ip'와 같은 Python 구현 <implementation>과 호환되는 휠만 사용합니다. 지정하지 않으면 현재 인터프리터 구현이 사용됩니다. 구현에 구애받지 않는 휠을 강제하려면 'py'를 사용하십시오. 
(환경 변수: PIP_IMPLEMENTATION)

--abi <abi>
'pypy_41'과 같은 Python abi <abi>와 호환되는 휠만 사용합니다. 지정하지 않으면 현재 인터프리터 abi 태그가 사용됩니다. 이 옵션을 여러 번 사용하여 대상 인터프리터에서 지원하는 여러 abi를 지정할 수 있습니다. 일반적으로 이 옵션을 사용할 때는 --implementation, --platform, --python-version을 지정해야 합니다. 
(환경 변수: PIP_ABI)

--no-clean
빌드 디렉토리를 정리하지 않습니다. 
(환경 변수: PIP_NO_CLEAN)

-i, --index-url <url>
Python Package Index의 기본 URL입니다 (기본값 https://pypi.org/simple). PEP 503(simple repository API)을 준수하는 저장소 또는 동일한 형식으로 배치된 로컬 디렉토리를 가리켜야 합니다. 
(환경 변수: PIP_INDEX_URL, PIP_PYPI_URL)

--extra-index-url <url>
옵션 --index-url 외에 추가로 사용할 패키지 인덱스의 URL입니다. --index-url과 동일한 규칙을 따라야 합니다. 
(환경 변수: PIP_EXTRA_INDEX_URL)

--no-index
패키지 인덱스를 무시합니다 (--find-links URL만 탐색).
(environment variable: PIP_NO_INDEX)

-f, --find-links <url>
HTML 파일의 URL 또는 경로를 지정하면 sdist (.tar.gz) 또는 wheel (.whl) 파일과 같은 아카이브 링크를 찾습니다. 로컬 경로 또는 file:// URL이 디렉토리인 경우, 디렉토리 목록에서 아카이브를 찾습니다. VCS 프로젝트 URL에 대한 링크는 지원되지 않습니다. 
(환경 변수: PIP_FIND_LINKS)

예제
=====
1. 패키지와 모든 종속성을 다운로드합니다.

[Unix/macOS]
python -m pip download 패키지명
python -m pip download -d . 패키지명  # 앞과 같음
python -m pip download --no-index --find-links=/tmp/wheelhouse -d /tmp/otherwheelhouse 패키지명

[Windows]
py -m pip download 패키지명
py -m pip download -d . 패키지명  # 앞과 같음
py -m pip download --no-index --find-links=/tmp/wheelhouse -d /tmp/otherwheelhouse 패키지명

2. OSX 특정 인터프리터 제약 조건을 사용하여 패키지 및 모든 종속성을 다운로드합니다. 이는 OSX 10.10 이하와의 호환성을 강제합니다. OSX 종속성은 하위 호환성을 가지므로 macosx_10_9_x86_64, macosx_10_8_x86_64, macosx_10_8_intel 등과도 일치합니다. 또한 platform any와도 일치합니다. 인터프리터 버전은 27(또는 일반적인 2)로, 구현은 cp(또는 일반적인 py)로 강제합니다.

[Unix/macOS]
python -m pip download \
   --only-binary=:all: \
   --platform macosx_10_10_x86_64 \
   --python-version 27 \
   --implementation cp \
   패키지명

[Windows]
py -m pip download ^
   --only-binary=:all: ^
   --platform macosx_10_10_x86_64 ^
   --python-version 27 ^
   --implementation cp ^
   패키지명

3. inux 특정 제약 조건을 사용하여 패키지 및 해당 종속성을 다운로드합니다. 인터프리터는 Python 3의 모든 부 버전(3.x)이어야 하며, abi는 cp34m 또는 none만 허용합니다.

[Unix/macOS]
python -m pip download \
   --only-binary=:all: \
   --platform linux_x86_64 \
   --python-version 3 \
   --implementation cp \
   --abi cp34m \
   패키지명

[Windows]
py -m pip download ^
   --only-binary=:all: ^
   --platform linux_x86_64 ^
   --python-version 3 ^
   --implementation cp ^
   --abi cp34m ^
   패키지명

4. 플랫폼, 구현 및 ABI에 구애받지 않는 종속성 패키지를 강제로 가져옵니다.

[Unix/macOS]
python -m pip download \
   --only-binary=:all: \
   --platform any \
   --python-version 3 \
   --implementation py \
   --abi none \
   패키지명

[Windows]
py -m pip download ^
   --only-binary=:all: ^
   --platform any ^
   --python-version 3 ^
   --implementation py ^
   --abi none ^
   패키지명

5. 과도하게 제약 조건을 설정하더라도 pip 범용 휠을 올바르게 가져올 수 있습니다.

[Unix/macOS]
python -m pip download \
   --only-binary=:all: \
   --platform linux_x86_64 \
   --python-version 33 \
   --implementation cp \
   --abi cp34m \
   pip>=8

[Windows]
C:\> py -m pip download ^
   --only-binary=:all: ^
   --platform linux_x86_64 ^
   --python-version 33 ^
   --implementation cp ^
   --abi cp34m ^
   pip>=8

ls pip-8.1.1-py2.py3-none-any.whl
pip-8.1.1-py2.py3-none-any.whl

6. 여러 ABI 및 플랫폼 중 하나를 지원하는 패키지를 다운로드합니다.
이는 pip가 실행 중인 환경과 다른, 지원되는 ABI 및 플랫폼이 알려져 있고 고정된 잘 정의된 인터프리터용 휠을 가져올 때 유용합니다.

[Unix/macOS]
python -m pip download \
   --only-binary=:all: \
   --platform manylinux1_x86_64 --platform linux_x86_64 --platform any \
   --python-version 36 \
   --implementation cp \
   --abi cp36m --abi cp36 --abi abi3 --abi none \
   패키지명

[Windows]
C:> py -m pip download ^
   --only-binary=:all: ^
   --platform manylinux1_x86_64 --platform linux_x86_64 --platform any ^
   --python-version 36 ^
   --implementation cp ^
   --abi cp36m --abi cp36 --abi abi3 --abi none ^
   패키지명

반응형

+ Recent posts