[python] 핍 동결 대 핍 목록

출력을 비교하면 차이점이 드러납니다.

user@user-VirtualBox:~$ pip list
feedparser (5.1.3)
pip (1.4.1)
setuptools (1.1.5)
wsgiref (0.1.2)
user@user-VirtualBox:~$ pip freeze
feedparser==5.1.3
wsgiref==0.1.2

Pip의 문서 상태

freeze                      Output installed packages in requirements format.
list                        List installed packages.

그러나 “요구 사항 형식”은 무엇이며 왜 pip list보다 포괄적 인 목록을 생성 pip freeze합니까?



답변

를 사용하는 virtualenv경우 requirements.txt모든 종속성을 설치할 파일을 지정할 수 있습니다 .

일반적인 사용법 :

$ pip install -r requirements.txt

패키지는 pip이해 하기 위해 특정 형식이어야합니다.

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 및 pip Basics “및 공식 ” Requirements File Format “문서 에서 자세한 내용을 읽을 수 있습니다 .


답변

이 질문의 두 번째 부분에 대답하기 위해, 두에 표시된 패키지 pip list는 아니지만이 pip freeze있다 setuptools(easy_install을하다)와 pip자체.

pip freezepip 자체가 의존하는 패키지를 나열하지 않은 것 같습니다 . --all플래그를 사용하여 해당 패키지도 표시 할 수 있습니다 .

에서 문서 :

--all

출력에서 다음 패키지를 건너 뛰지 마십시오 : pip, setuptools, distribution, wheel


답변

주요 차이점은의 출력을 pip freezerequirements.txt 파일로 덤프하고 나중에 “고정 된”환경을 재구성하는 데 사용할 수 있다는 것입니다.

다른 말로하면 다음을 실행할 수 있습니다.
pip freeze > frozen-requirements.txt한 시스템에서 나중에 다른 시스템이나 깨끗한 환경에서 수행 할 수
pip install -r frozen-requirements.txt
있습니다. frozen-requirements.txt를 생성했습니다.


답변

두 가지 기능을 다음과 같이 설명 하는 pip 문서 를 참조하십시오.

핍 목록

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

핍 동결

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

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

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

  2. 출력 내용, 그렇지 않은 pip list편집 가능 항목을 포함 pip freeze합니다.


답변

pip list모든 패키지를 표시 합니다.

pip freeze쇼 패키지는 당신이 를 통해 설치 pip(또는 pipenv그 도구를 사용하는 경우) 요구 사항 형식으로 명령을.

내 가상 엔벨로프를 생성 할 때 setuptools , pip , wheel 이 설치 된다는 점에 유의하십시오 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-libsampleproject ( 페퍼콘 이 종속성 임) 만 설치 한 각 명령의 출력을 검토하고 비교합니다 .

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


답변