programing

파이프 동결 대 파이프 리스트

topblog 2023. 6. 17. 08:15
반응형

파이프 동결 대 파이프 리스트

왜 그럴까요?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 설명서를 참조하십시오.

파이프 리스트

편집 가능한 패키지를 포함하여 설치된 패키지를 나열합니다.

파이프 동결

설치된 패키지를 요구 사항 형식으로 출력합니다.

따라서 두 가지 차이점이 있습니다.

  1. 출력 형식,freeze나중에 사용할 수 있는 표준 요구사항 형식을 제공합니다.pip install -r설치할 수 있습니다.

  2. 출력 내용,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 listpip 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

반응형