“ pkg-resources == 0.0.0” ในเอาต์พุตของคำสั่ง pip freeze คืออะไร


157

เมื่อฉันเรียกpip freezeฉันเห็น (ในแพคเกจอื่น ๆ pkg-resources==0.0.0คาดว่า) ฉันได้เห็นโพสต์ไม่กี่กล่าวขวัญแพคเกจนี้ (รวมถึงคนนี้ ) pip freezeแต่ไม่มีใครอธิบายว่ามันคืออะไรหรือทำไมมันจะรวมอยู่ในการส่งออกของ เหตุผลหลักที่ฉันสงสัยว่าเป็นเพราะความอยากรู้อยากเห็น แต่ก็ดูเหมือนว่าจะมีบางสิ่งบางอย่างในบางกรณีเมื่อพยายามติดตั้งแพคเกจด้วยrequirements.txtไฟล์ที่สร้างด้วยpip freezeที่มีpkg-resources==0.0.0บรรทัด (ตัวอย่างเช่นเมื่อTravis CIพยายามติดตั้งการอ้างอิงผ่านpipและพบสิ่งนี้) ไลน์).

คืออะไรpkg-resourcesและตกลงเพื่อลบบรรทัดนี้ออกrequirements.txtหรือไม่

ปรับปรุง:

ฉันได้พบว่าสายนี้เท่านั้นดูเหมือนว่าจะมีอยู่ในการส่งออกของเมื่อผมอยู่ในpip freeze virtualenvฉันยังไม่แน่ใจว่ามันคืออะไรหรือสิ่งที่มันไม่ virtualenvแต่ฉันจะตรวจสอบต่อไปรู้ว่ามันมีแนวโน้มที่จะเกี่ยวข้องกับ


"ดูเหมือนว่าจะมีบางสิ่งในบางกรณีเมื่อพยายามติดตั้งแพคเกจด้วยไฟล์ requirements.txt ที่สร้างด้วยการตรึง pip ที่มี pkg-resources == 0.0.0 บรรทัด" . คุณอาจยกตัวอย่างสำหรับสิ่งนั้นได้ไหม
Dimitris Fasarakis Hilliard

@ จิมจุดดี ฉันเพิ่มตัวอย่างที่ฉันพบ
elethan

หืมคุณเป็นรุ่นpipอะไร ฉันคิดว่าอาจของรับสิ่งที่พวกเขาพลาดในรุ่นเก่านี้ตั้งแต่ในฉันมีรายการสำหรับไม่มี8.1.2 pkg-resources(ซึ่งไม่ควรเพราะฉันค่อนข้างมั่นใจpkg-resourcesมาพร้อมกับsetuptools)
Dimitris Fasarakis Hilliard

1
@ ฉันเพิ่งเกิดขึ้นกับฉันว่ามันอาจจะเกี่ยวข้องกับvirtualenvและแน่นอนเมื่อฉันไม่ได้อยู่ใน virtualenv ฉันไม่เห็นมันทั้ง สิ่งนี้ยังไม่ได้อธิบายว่ามันคืออะไร แต่อย่างน้อยก็เป็นเบาะแสที่ฉันสามารถตรวจสอบได้
elethan

1
เป็นไปได้ที่ซ้ำกันของเหตุใด pip ตรึงรายการ "pkg-resources == 0.0.0"
Louis

คำตอบ:


182

ตามhttps://github.com/pypa/pip/issues/4022นี่เป็นข้อผิดพลาดที่เกิดจาก Ubuntu ที่ให้ข้อมูลเมตาที่ไม่ถูกต้องไปยัง pip ดังนั้นไม่มีดูเหมือนจะไม่มีเหตุผลที่ดีสำหรับพฤติกรรมนี้ ฉันยื่นข้อผิดพลาดการติดตามกับ Ubuntu https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

หากต้องการสำรองคำตอบก่อนหน้านี้คุณควรลบบรรทัดนั้นออกจาก requirements.txt ของคุณอย่างปลอดภัย นี่คือตัวอย่าง Make file stanza ที่หยุดรายการแพคเกจของคุณอย่างปลอดภัย (วางใน Makefile ของคุณและรันด้วยmake freeze):

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

9
ไม่ใช่ข้อผิดพลาดเฉพาะ Ubuntu เท่านั้นเดเบียนมีปัญหาเดียวกัน
แมงกะพรุน

1
ตอนแรกที่ความคิดของ MohammedShareefC ดูเหมือนจะใช้ได้ แต่หลังจากนั้นฉันก็AttributeError: module 'pkg_resources' has no attribute 'iter_entry_points'เลยคิดว่ามันดีที่สุดที่จะลบมันออกจากrequirements.txt
arod

2
ยังคงทำให้เกิดอาการปวดหัวเมื่อพยายามปรับใช้กับ heroku
Martins

3
ดูเหมือนว่าปัญหานี้ยังคงเป็นปัญหากับ ubuntu 18.04
Carmine Tambascia

3
ยังคงมีปัญหากับ Python 3.8 บน Ubuntu 19.04
eric.frederich

13

สำหรับส่วนของคำถามของคุณ " การลบบรรทัดนี้หรือไม่ ":

ฉันมีปัญหาเดียวกันที่นี่พัฒนาบน Ubuntu 16.04 กับบรรทัดที่มากในข้อกำหนด เมื่อปรับใช้กับการเรียกใช้"pip install -r requirements.txt"pip debian 8.5 นั้นบ่นว่า pkg-resources "ไม่พบ" แต่มีแพ็คเกจระดับโลกที่ติดตั้ง "python-pkg-resources" ดังนั้นการพึ่งพาควรจะพึงพอใจ เหมือนกันบน Ubuntu: มีแพ็คเกจอยู่ด้วย

ตามที่ระบุไว้ที่นี่ดูเหมือนจะเป็น "แพ็คเกจที่ติดตั้งโดยปริยาย"

ดังนั้น: หากคุณอยู่ใน Debian / Ubuntu ที่ติดตั้ง 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 เวอร์ชัน debianized ซึ่งใช้ pkg_resource เวอร์ชัน debundled ซึ่งได้รับการเพิ่มใน 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 คุณสามารถแก้ไขได้โดยลบvirtualenvแพ็คเกจUbuntu และติดตั้งเวอร์ชันใหม่จากpip:

sudo apt remove virtualenv
sudo pip install -U virtualenv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.