파이프 동결 대 파이프 리스트
왜 그럴까요?pip list
보다 포괄적인 목록 생성pip freeze
?
$ pip list
feedparser (5.1.3)
pip (1.4.1)
setuptools (1.1.5)
wsgiref (0.1.2)
$ pip freeze
feedparser==5.1.3
wsgiref==0.1.2
Pip의 문서에는 다음과 같은 내용이 있습니다.
얼다 | 설치된 패키지를 요구 사항 형식으로 출력합니다. |
목록. | 설치된 패키지를 나열합니다. |
"요구사항 형식"이란 무엇입니까?
다음을 생성할 수 있습니다.requirements.txt
경유:
$ pip freeze > requirements.txt
사용자가 사용할 수 있습니다.requirements.txt
모든 종속성을 설치할 파일입니다.예를 들어:
$ pip install -r requirements.txt
패키지는 다음에 대한 특정 형식이어야 합니다.pip
다음과 같이 이해할 수 있습니다.
# requirements.txt
feedparser==5.1.3
wsgiref==0.1.2
django==1.4.2
...
그것이 "요구사항 형식"입니다.
여기서,django==1.4.2
설치를 의미합니다.django
버전1.4.2
(최신 버전은 1.6.x이지만).지정하지 않은 경우==1.4.2
최신 버전이 설치됩니다.
자세한 내용은 "Virtualenv and pip Basics" 및 공식 "Requirements File Format" 문서를 참조하십시오.
이 질문의 두 번째 부분에 답하기 위해, 두 개의 패키지는 에 나와 있습니다.pip list
하지만 아닙니다.pip freeze
이다setuptools
(간단히_설치 가능)pip
그 자체로
처럼 보입니다.pip freeze
단지 파이프 자체가 의존하는 패키지를 나열하지 않습니다.다음을 사용할 수 있습니다.--all
플래그를 눌러 해당 패키지도 표시합니다.
설명서에서 다음을 참조하십시오.
--all
pip, setup tools, distribute, wheel 등의 패키지를 출력에서 생략하지 마십시오.
주요 차이점은 출력이pip freeze
요구 사항에 포함될 수 있습니다.txt 파일이며 나중에 "vmx" 환경을 다시 시작하는 데 사용됩니다.
즉, 다음을 실행할 수 있습니다.pip freeze > frozen-requirements.txt
한 시스템에서 나중에 다른 시스템 또는 깨끗한 환경에서 다음 작업을 수행할 수 있습니다.pip install -r frozen-requirements.txt
그러면 frozen-designment를 생성한 원래 환경과 정확히 동일한 종속성이 설치된 동일한 환경을 얻을 수 있습니다.txt의
두 가지 기능을 모두 설명하는 Pip 설명서를 참조하십시오.
파이프 리스트
편집 가능한 패키지를 포함하여 설치된 패키지를 나열합니다.
파이프 동결
설치된 패키지를 요구 사항 형식으로 출력합니다.
따라서 두 가지 차이점이 있습니다.
출력 형식,
freeze
나중에 사용할 수 있는 표준 요구사항 형식을 제공합니다.pip install -r
설치할 수 있습니다.출력 내용,
pip list
편집 가능한 테이블 포함pip freeze
하지 않다.
pip list
설치된 모든 패키지가 표시됩니다.
pip freeze
를 통해 설치한 패키지를 보여줍니다.pip
(또는)pipenv
해당 도구를 사용하는 경우) 명령을 요구 사항 형식으로 입력합니다.
설정 공구, 파이프, 휠은 다음과 같은 경우에 장착된다는 점에 유의하십시오.pipenv shell
가상 봉투를 만듭니다.이 패키지는 사용자가 설치한 것이 아닙니다.pip
:
test1 % pipenv shell
Creating a virtualenv for this project…
Pipfile: /Users/terrence/Development/Python/Projects/test1/Pipfile
Using /usr/local/Cellar/pipenv/2018.11.26_3/libexec/bin/python3.8 (3.8.1) to create virtualenv…
⠹ Creating virtual environment...
<SNIP>
Installing setuptools, pip, wheel...
done.
✔ Successfully created virtual environment!
<SNIP>
이제 cool-lib과 샘플 프로젝트(그 중 페퍼콘이 종속적임)만 설치한 각 명령의 출력을 검토하고 비교합니다.
test1 % pip freeze <== Packages I'VE installed w/ pip
-e git+https://github.com/gdamjan/hello-world-python-package.git@10<snip>71#egg=cool_lib
peppercorn==0.6
sampleproject==1.3.1
test1 % pip list <== All packages, incl. ones I've NOT installed w/ pip
Package Version Location
------------- ------- --------------------------------------------------------------------------
cool-lib 0.1 /Users/terrence/.local/share/virtualenvs/test1-y2Zgz1D2/src/cool-lib <== Installed w/ `pip` command
peppercorn 0.6 <== Dependency of "sampleproject"
pip 20.0.2
sampleproject 1.3.1 <== Installed w/ `pip` command
setuptools 45.1.0
wheel 0.34.2
내가 선호하는 요구사항 파일 생성 방법은 다음과 같습니다.
pip list --format=freeze > requirements.txt
이 방법은 'pip freeze'만으로도 때때로 제공되는 로컬 파일 경로에 잠재적으로 연결하지 않고 패키지 이름과 패키지 버전만 유지합니다.요구 사항 파일의 로컬 파일 경로는 코드베이스를 다른 사용자에게 사용하기 어렵게 만들고 일부 개발자는 이 문제를 해결하는 방법을 모르기 때문에 채택하기 쉬운 이 방법을 선호합니다.
pip list
설치된 패키지 나열: 암시적으로 설치된 모든 설치된 패키지 표시
pip freeze
설치된 패키지 나열: - pip 명령을 사용하여 설치된 패키지 목록
파이프 동결이 있습니다.--all
모든 패키지를 표시하는 플래그입니다.
다른 차이점은 명령을 실행하여 확인할 수 있는 출력을 렌더링한다는 점입니다.
해결책을 찾는 사람들을 위한 것입니다.실수로 만든 경우pip
사항을 충족해야 합니다.pip list
에 pip freeze
그리고 pip freeze 형식으로 변환하기를 원합니다.저는 그렇게 하기 위해 이 R 스크립트를 작성했습니다.
library(tidyverse)
pip_list = read_lines("requirements.txt")
pip_freeze = pip_list %>%
str_replace_all(" \\(", "==") %>%
str_replace_all("\\)$", "")
pip_freeze %>% write_lines("requirements.txt")
언급URL : https://stackoverflow.com/questions/18966564/pip-freeze-vs-pip-list
'programing' 카테고리의 다른 글
Mongodb 집계 파이프라인 그룹 푸시를 제한하는 방법 (0) | 2023.06.22 |
---|---|
C에서 포인터 유형 간의 캐스팅이 정의되지 않은 동작은 언제입니까? (0) | 2023.06.22 |
mocha test vue 템플릿이지만 babel이 'computed:{...mapGetters()}'을(를) 분석할 수 없습니다. (0) | 2023.06.17 |
여러 장치가 연결되어 있을 때 ADB Shell을 사용하는 방법은 무엇입니까?"오류: 둘 이상의 장치 및 에뮬레이터"로 실패함 (0) | 2023.06.17 |
열에서 쉼표로 구분된 문자열을 별도의 행으로 분할 (0) | 2023.06.17 |