핍 동결 대 핍 목록


111

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

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합니까?


5
참고로 여기에 문서가 있습니다.
alecxe 2013 년

답변:


109

를 사용하는 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 "문서 에서 자세한 내용을 읽을 수 있습니다 .


5
알았다. "목록"이 "고정"보다 더 포괄적 인 목록을 생성하는 특별한 이유가 있습니까?
nitrl 2013 년

2
pip list모든 것을 나열 pip freeze하고 pip에 의해 설치된 모든 것을 설치 하기 때문이라고 생각합니다 .
karthikr 2013 년

흠, 그것은 이론이지만 나는 그렇지 않다고 확신 pip install wsgiref합니다.
nitrl 2013 년

Python 3.2는 wsgiref.egg-infoLib 디렉토리에 포함 되어 있으므로 pip가 이에 대해 알고 있습니다. pip로 [제거] 할 수 없으며 이후 버전의 Python은 메타 데이터 파일을 생략하므로 표시되지 않습니다.
Zooba

1
@leonid 마지막에 버전 번호를 제거하면 pypi에서 최신 버전을 설치합니다. 완전히 대답을 읽기
karthikr

42

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

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

에서 문서 :

--all

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


3
pip freeze옵션이있다 --all: 또한 보여 pip, setuptools, distribute, wheel pip.pypa.io/en/stable/reference/pip_freeze
Chananel P

덜 배포
Max Kleiner

37

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

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


26

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

핍 목록

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

핍 동결

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

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

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

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


편집 가능 항목이란 무엇을 의미합니까?
Mr. Suryaa Jha


5

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.