Skip to content

Python:Requirements

Categories

No Binary

pip install --no-binary=protobuf protobuf

위와 같은 기능을 하는 requirements.txt 파일 내용은 다음과 같다:

spam --no-binary=eggs
bacon --only-binary=eggs

requirements.txt vs constraints.txt

자세한 내용은 Python:Constraints#requirements.txt vs constraints.txt 항목 참조.

Version specifiers

~=같은 버전 지정 방법. 자세한 내용은 PEP 440#Version specifiers 항목 참조.

Requirements File Format

여러 사이트의 패키지를 검색하고 싶다면 아래와 같이 작성하면 된다.

# Torch
--find-links https://download.pytorch.org/whl/torch_stable.html
torch==1.5.0+cu101
torchvision==0.6.0+cu101

# Detectron
--find-links https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/index.html
detectron2

Compare Operators

~= 연산자

Adding to the existing answers, I think it's very important to also mention that while

~=0.6.10 means >=0.6.10, ==0.6.*

Following is also true

~=0.6 means >=0.6, ==0.*

좀 복잡한 제약 조건

opencv-pythonpyproject.toml 파일을 보면 다음과 같다:

[build-system]
requires = [
  "cmake>=3.1",
  "numpy==1.13.3; python_version=='3.6' and platform_machine != 'aarch64' and platform_machine != 'arm64'",
  "numpy==1.17.0; python_version=='3.7' and platform_machine != 'aarch64' and platform_machine != 'arm64'",
  "numpy==1.17.5; python_version=='3.8' and platform_machine != 'aarch64' and platform_machine != 'arm64'",
  "numpy==1.19.3; python_version<'3.9' and sys_platform == 'linux' and platform_machine == 'aarch64'",
  "numpy==1.21.0; python_version<'3.9' and sys_platform == 'darwin' and platform_machine == 'arm64'",
  "numpy>=2.0.0;  python_version>='3.9'",
  "pip",
  "scikit-build>=0.14.0",
  "setuptools==59.2.0",
]

또는 setup.py 파일:

    install_requires = [
        'numpy>=1.13.3; python_version<"3.7"',
        'numpy>=1.17.0; python_version>="3.7"', # https://github.com/numpy/numpy/pull/13725
        'numpy>=1.17.3; python_version>="3.8"',
        'numpy>=1.19.3; python_version>="3.9"',
        'numpy>=1.21.2; python_version>="3.10"',
        'numpy>=1.19.3; python_version>="3.6" and platform_system=="Linux" and platform_machine=="aarch64"',
        'numpy>=1.21.0; python_version<="3.9" and platform_system=="Darwin" and platform_machine=="arm64"',
        'numpy>=1.21.4; python_version>="3.10" and platform_system=="Darwin"',
        "numpy>=1.23.5; python_version>='3.11'",
        "numpy>=1.26.0; python_version>='3.12'"
    ]

다른 requirements.txt 포함

-r requirements-dev.txt
-r requirements-test.txt

See also

Favorite site