source

pip freeze 명령어 출력의 "pkg-param==0.0.0"은 무엇입니까?

lovecheck 2022. 12. 8. 21:24
반응형

pip freeze 명령어 출력의 "pkg-param==0.0.0"은 무엇입니까?

내가 달릴 때pip freeze알겠습니다(기타 예상 패키지 중)pkg-resources==0.0.0이 패키지( 패키지 포함)에 대해 언급한 게시물을 몇 개 봤지만, 이 패키지가 무엇인지, 또는 왜 이 패키지가 출력에 포함되었는지에 대한 설명은 없습니다.pip freeze제가 궁금한 주된 이유는 궁금해서입니다만, 또한 패키지와 함께 패키지를 설치하려고 할 때 깨지는 경우도 있는 것 같습니다.requirements.txt에서 생성된 파일pip freeze를 포함합니다.pkg-resources==0.0.0line(를 들어 Travis CI가 다음을 통해 종속성을 설치하려고 할 때)pip이 행을 찾습니다).

뭐가pkg-resources이 행을 에서 삭제해도 될까요?requirements.txt?

업데이트:

이 행은 의 출력에만 존재하는 것 같습니다.pip freeze내가 있을 때virtualenv그것이 무엇이고 무엇을 하는지는 아직 확실치 않지만, 나는 그것이 아마도 관련이 있다는 것을 알고 더 조사할 것이다.virtualenv.

https://github.com/pypa/pip/issues/4022,에 따르면 이는 Ubuntu가 잘못된 메타데이터를 pip에 제공하기 때문에 발생한 버그입니다.그래서, 이런 행동에 대한 타당한 이유는 없는 것 같습니다.Ubuntu에 추적 버그를 신청했습니다.https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

이전 답변을 백업하려면 해당 행을 요구 사항에서 삭제하는 것이 안전합니다.다음은 패키지 목록을 안전하게 고정하는 파일 스탠자 만들기 예제입니다(Make file을 드롭하여 실행).make freeze):

freeze:
    pip freeze | grep -v "pkg-resources" > requirements.txt

2022년 7월 6일 편집:

패키지명은 사용중인 시스템에 따라 다르다고 들었습니다.pkg-resourcespkg_resourcesDebian/Ubuntu 버전에 따라 사용방법에 차이가 있는 경우 이 답변에 첨부된 코멘트를 참조하십시오.~하듯이pkg-resources는, 문제가 되고 있는 시스템에 대해서, 이 패키지가 투고된 시점(약 6년 전)의 과거로부터 올바른 패키지명입니다.이 답변에서는 변경되지 않습니다.

질문의 일부에 대해서입니다만, 「이 행을 삭제해도 괜찮습니까?":

ubuntu 16.04에서도 같은 문제가 발생하고 있습니다.요건은 바로 그 라인입니다.debian 8.5를 실행하고 있는 데비안 8.5에 전개하는 경우"pip install -r requirements.txt"pkg-package가 "not found"라고 하는데 글로벌 패키지가 "pkg-pkg-package"로 설치되어 있기 때문에 의존관계가 충족되어야 합니다.ubuntu에서도 동일:패키지도 거기에 있습니다.

여기에 기재되어 있는 것처럼, 「암묵적으로 인스톨 되고 있는 패키지」라고 생각됩니다.

따라서: python-pkg-resources가 설치된 Debian/Ubuntu에 있는 경우 해당 라인을 삭제해도 안전합니다.그렇게 했고 모든 게 잘 되고 있어요.그러나 저는 이 문제에 대해 잘 모르기 때문에 다른 기계에 전개할 때 문제가 발생할 수 있다는 점에 유의하시기 바랍니다.

다음 링크에서 답을 찾았습니다.https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

작성자: 루이 부샤르(루이)는 2019-11-16에 다음과 같이 썼다.

그것은 나에게 효과가 있었다.하지만 저는 전문가가 아니기 때문에 누군가가 더 잘 표현해 준다면 설명해주면 좋을 것 같습니다.

안녕하세요.

이 문제는 virtualenv의 debunded 버전이 생성 시 virtualenv에 추가되는 pkg_resource를 사용하는 virtualenv의 debunded 버전에서 발생합니다.

$ virtualenv .
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/caribou/git/quividi/test/bin/python2
Also creating executable in /home/caribou/git/quividi/test/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ pip freeze
pkg-resources==0.0.0

pip installed 버전의 virtualenv를 사용하면 회피할 수 있습니다.

$ sudo apt -y purge python3-virtualenv virtualenv tox
$ pip install virtualenv
$ virtualenv .
pip install virtualenv
Collecting virtualenv
  Downloading https://files.pythonhosted.org/packages/c5/97/00dd42a0fc41e9016b23f07ec7f657f636cb672fad9cf72b80f8f65c6a46/virtualenv-16.7.7-py2.py3-none-any.whl (3.4MB)
    100% |████████████████████████████████| 3.4MB 351kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-16.7.7
$ virtualenv .
New python executable in /home/caribou/git/quividi/test/bin/python
Installing setuptools, pip, wheel...
done.
$ source bin/activate
$ pip freeze
$

언급URL : https://stackoverflow.com/questions/39577984/what-is-pkg-resources-0-0-0-in-output-of-pip-freeze-command

반응형