Python:Requirements
Categories
- pip
- Python:Requirements - Python의 pip 설치 시 사용되는 requirements.txt 파일에 대한 설명
- Python:Constraints - Python의 pip 설치 시 사용되는 constraints.txt 파일에 대한 설명
No Binary
위와 같은 기능을 하는 requirements.txt
파일 내용은 다음과 같다:
requirements.txt vs constraints.txt
자세한 내용은 Python:Constraints#requirements.txt vs constraints.txt 항목 참조.
Version specifiers
~=
같은 버전 지정 방법. 자세한 내용은 PEP 440#Version specifiers 항목 참조.
Requirements File Format
- Requirements File Format - pip documentation v21.3.1
- Glossary — Python Packaging User Guide # Requirement Specifier
- Stackoverflow - How to format requirements.txt when package source is from specific websites?
여러 사이트의 패키지를 검색하고 싶다면 아래와 같이 작성하면 된다.
# 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
Following is also true
좀 복잡한 제약 조건
opencv-python 의 pyproject.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'"
]