pip freeze 명령 출력에서“pkg-resources == 0.0.0”이란 무엇입니까


157

내가 실행하면 pip freeze(다른 예상 패키지 중)을 볼 수 pkg-resources==0.0.0있습니다. 나는 (를 포함하여이 패키지를 언급하는 몇 게시물 본 이 일을 ), 그러나 아무도 그것이 무엇인지 설명하지 않거나이의 출력에 포함되는 이유 pip freeze. 내가 궁금해하는 주된 이유는 호기심이 없기 때문에 라인 을 포함하여 requirements.txt생성 된 파일로 패키지를 설치하려고 할 때 일부 경우에 문제가 발생하는 것으로 보입니다 (예 : Travis CI 가 종속성을 설치하려고 시도하고 이것을 찾을 때) 선).pip freezepkg-resources==0.0.0pip

무엇 pkg-resources, 그것은에서이 줄을 제거 가능하다 requirements.txt?

최신 정보:

이 줄은 pip freeze내가 에 있을 때 의 출력에만 존재하는 것으로 나타났습니다 virtualenv. 나는 그것이 무엇인지 또는 그것이 무엇인지 확실하지 않지만, 그것이 관련이있을 가능성이 있음을 더 조사 할 것입니다 virtualenv.


"pkg-resources == 0.0.0 줄을 포함하는 pip freeze로 생성 된 requirements.txt 파일을 사용하여 패키지를 설치하려고 할 때 경우에 따라 문제가 발생하는 것 같습니다." . 그것에 대한 예를 들어 줄 수 있습니까?
Dimitris Fasarakis Hilliard

@Jim, 좋은 지적입니다. 나는 그 예제를 추가했다.
elethan

흠, 당신의 버전은 pip무엇입니까? 에 대한 8.1.2항목이 없기 때문에 이전 릴리스에서 누락 된 것일 수 있습니다 pkg-resources. (내가 확신하기 때문에해서는 안되는 pkg-resourcessetuptools).
Dimitris Fasarakis Hilliard

1
@Jim 그것은 단지 관련이있을 수 있으며 virtualenv, 실제로 virtualenv에 있지 않을 때도 보지 못했습니다. 이것은 여전히 ​​그것이 무엇인지 설명하지 않지만 적어도 조사 할 수있는 단서입니다.
elethan

답변:


182

https://github.com/pypa/pip/issues/4022 에 따르면 , 이것은 우분투가 pip에 잘못된 메타 데이터를 제공함으로써 발생하는 버그입니다. 따라서이 행동에 대한 정당한 이유가없는 것 같습니다. 우분투에 후속 버그를 제기했습니다. https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

이전 답변을 백업하려면 requirements.txt에서 해당 줄을 제거하는 것이 안전해야합니다. 다음은 패키지 목록을 안전하게 고정시키는 Make 파일 스탠자의 예입니다 (Makefile에 드롭하고로 실행 make freeze).

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

9
우분투 관련 버그가 아닙니다. 데비안도 같은 문제가 있습니다
해파리

1
첫째 @MohammedShareefC 아이디어에서 작업 듯,하지만 내가 가지고 AttributeError: module 'pkg_resources' has no attribute 'iter_entry_points'난 그냥에서 제거하기 위해 최선 생각, 그래서requirements.txt
arod

2
heroku에 배포하려고 할 때 여전히 두통을 유발합니다
Martins

3
이것은 여전히 ​​우분투 18.04의 문제인 것 같습니다
Carmine Tambascia

3
Ubuntu 19.04의 Python 3.8 관련 문제
eric.frederich

13

질문의 일부에 대해서는 " 이 줄을 제거해도 되나요? ":

나는 요구 사항의 바로 그 줄을 가진 우분투 16.04에서 개발하는 동일한 문제가 있습니다. "pip install -r requirements.txt"pip를 실행하는 데비안 8.5에 배포 할 때 pkg-resources가 "찾을 수 없음"이라고 불평하지만 "python-pkg-resources"라는 전역 패키지가 설치되어 있으므로 종속성이 충족되어야합니다. 우분투에서 동일 : 패키지도 존재합니다.

여기에 언급 된 바와 같이 "암시 적으로 설치된 패키지"인 것 같습니다.

따라서 : python-pkg-resources가 설치된 데비안 / 우분투에있는 경우 해당 줄을 제거하는 것이 안전해야합니다 . 나는 그렇게했고 모든 것이 잘 돌아가고있다. 그러나 나는 이것에 대해 전문가가 아니기 때문에 다른 컴퓨터에 배포 할 때 합병증을 유발할 수 있음을 명심해야합니다.


정보 주셔서 감사합니다. 나는 그것을 제거하고 결과도 보지 못했지만 언급 한 것과 동일한 경고가 물론 적용됩니다. virtualenv뿐만 아니라 어디에서 설치 합니까?
elethan

예, virtualenv 내부에서 설치를 시도했습니다. 시스템 전체 패키지가 존재하고 엉망이되고 싶지 않기 때문에 시스템 전체에서 pip 당 설치를 시도하지 않았습니다.
karlsebal

1

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

작성자 : Louis Bouchard (louis)는 2019-11-16에 썼습니다 :

그것은 나를 위해 일했다. 그러나 나는 전문가가 아니기 때문에 누군가가 그것을 더 잘 풀지 못한다면 설명하면 좋을 것입니다.

여보세요,

가치있는 것에 대해, 문제는 생성시 virtualenv에 추가되는 pkg_resource의 번들 버전을 사용하는 debianized virtualenv 버전에서 발생합니다.

$ 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

virtualenv의 pip 설치 버전을 사용하면 해결할 수있는 해결 방법이 될 수 있습니다.

$ 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
$

hth, ... 루이


-2

Ubuntu에서는 Ubuntu virtualenv패키지 를 제거 하고 pip다음 위치 에서 새 버전을 설치 하여이 문제를 해결할 수 있습니다 .

sudo apt remove virtualenv
sudo pip install -U virtualenv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.