पाइप फ्रीज कमांड के आउटपुट में "pkg-resource == 0.0.0" क्या है


157

जब मैं दौड़ता pip freezeहूं तो मैं देखता हूं (अन्य अपेक्षित पैकेजों के बीच) pkg-resources==0.0.0। मैंने इस पैकेज ( इस एक सहित ) का उल्लेख करते हुए कुछ पोस्ट देखे हैं , लेकिन कोई भी यह नहीं समझा रहा है कि यह क्या है, या इसे क्यों शामिल किया गया है pip freeze। मुख्य कारण जो मैं सोच रहा हूं वह जिज्ञासा से बाहर है, लेकिन साथ ही, यह कुछ मामलों में चीजों को तोड़ता है जब पैकेज के साथ requirements.txtउत्पन्न फ़ाइल को स्थापित करने की कोशिश की जाती pip freezeहै जिसमें pkg-resources==0.0.0रेखा भी शामिल होती है (उदाहरण के लिए जब ट्रैविस सीआई निर्भरता स्थापित करने की कोशिश करता है pipऔर यह पाता है लाइन)।

क्या है pkg-resources, और क्या इस लाइन को हटाना ठीक है requirements.txt?

अपडेट करें:

मैंने पाया है कि यह लाइन केवल pip freezeतब के आउटपुट में मौजूद होती है जब मैं इसमें होता हूं virtualenv। मुझे अभी भी यकीन नहीं है कि यह क्या है या यह क्या करता है, लेकिन मैं यह जानने के लिए आगे की जांच करूंगा कि यह संभवतः संबंधित है virtualenv


"यह कुछ मामलों में चीजों को तोड़ने के लिए लगता है जब एक आवश्यकताओं के साथ पैकेजों को स्थापित करने की कोशिश की जाती है। पाइप फ्रीज से उत्पन्न फ़ाइल। जिसमें pkg- संसाधन == 0.0.0 लाइन शामिल है।" । क्या आप इसके लिए एक उदाहरण दे सकते हैं?
दिमित्रिस फासारकिस हिलियार्ड

@ जीम, अच्छी बात है। मैंने उदाहरण दिया कि मैं भाग गया।
एलेथन

एचएम, आपका संस्करण क्या है pip? मुझे लगता है कि यह कुछ ऐसा हो सकता है जब वे एक पुरानी रिलीज में चूक गए क्योंकि 8.1.2मेरे पास कोई प्रविष्टि नहीं है pkg-resources। (जो यह नहीं होना चाहिए क्योंकि मैं बहुत यकीन pkg-resourcesहै कि साथ आता है setuptools)।
दिमित्री फासरकिस हिलियार्ड

1
@ यह सिर्फ मेरे लिए हुआ है कि यह संबंधित हो सकता है virtualenv, और वास्तव में, जब मैं एक virtualenv में नहीं हूं तो मैं इसे नहीं देखता हूं। यह अभी भी स्पष्ट नहीं करता है कि यह क्या है, लेकिन कम से कम एक सुराग है जो मैं जांच कर सकता हूं।
एलेथन

जवाबों:


182

Https://github.com/pypa/pip/issues/4022 के अनुसार , यह एक बग है जिसके परिणामस्वरूप उबंटू गलत मेटाडेटा प्रदान करता है। तो, नहीं, इस व्यवहार के लिए एक अच्छा कारण नहीं लगता है। मैंने उबंटू के साथ अनुवर्ती बग दर्ज किया। https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

पिछले उत्तर का बैकअप लेने के लिए, अपनी आवश्यकताओं से उस लाइन को हटाना सुरक्षित होना चाहिए। यहाँ एक उदाहरण बनाओ फ़ाइल श्लोक जो आपकी पैकेज सूची को सुरक्षित रूप से जमा करता है (आपके मेकफाइल में गिरावट और उसके साथ भाग 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
अरोड

2
अभी भी सिरदर्द का कारण बन रहा है जब हिक्कु
मार्टिंस

3
यह अभी भी ubuntu 18.04 के साथ एक मुद्दा लगता है
कारमेन टैम्बस्किया

3
फिर भी उबंटू 19.04 पर पायथन 3.8 के साथ एक मुद्दा
eric.frederich

13

आपके प्रश्न के भाग के रूप में " क्या इस लाइन को हटाना ठीक है? "

मैं यहाँ एक ही समस्या में एक ubuntu 16.04 पर विकसित कर रहा हूँ कि आवश्यकताओं में बहुत लाइन के साथ। जब डेबियन 8.5 पर चल रहा है"pip install -r requirements.txt" पाइप शिकायत होती है कि pkg-resource "नहीं मिला" है, लेकिन एक वैश्विक पैकेज "python-pkg-resource" स्थापित है, इसलिए निर्भरता को संतुष्ट किया जाना चाहिए। Ubuntu पर भी: पैकेज वहाँ भी मौजूद है।

जैसा कि यहां कहा गया है कि यह कुछ "अंतर्निहित रूप से स्थापित पैकेज" प्रतीत होता है।

इसलिए: यदि आप एक डेबियन / उबंटू में हैं, तो अजगर-pkg- संसाधनों को स्थापित करने के लिए यह उस लाइन को हटाने के लिए सुरक्षित होना चाहिए । मैंने ऐसा किया और सब कुछ ठीक चल रहा है। हालाँकि, जब से मैं इस पर कोई विशेषज्ञ नहीं हूँ, तो आपको यह ध्यान रखना चाहिए कि किसी अन्य मशीन पर तैनात होने पर यह जटिलताओं का कारण बन सकता है।


जानकारी के लिए धन्यवाद। मैंने इसे भी समाप्त कर दिया है और किसी भी परिणाम को नहीं देखा है, लेकिन समान कैविटीज़ का आप निश्चित रूप से लागू होने का उल्लेख करते हैं। जहाँ आप / के virtualenvरूप में अच्छी तरह से स्थापित करने के लिए ?
ईथन

हां, मैंने एक virtualenv के अंदर से इंस्टॉल करने की कोशिश की। चूंकि सिस्टमवाइड पैकेज मौजूद है और मैं चीजों को गड़बड़ नहीं करना चाहता था, इसलिए मैंने प्रति पाइप सिस्टम स्थापित करने की कोशिश नहीं की।
कर्लसेबल

1

इसका उत्तर इस लिंक में मिला: https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

द्वारा: लुई बुचर्ड (लूइस) ने 2019-11-16 को लिखा:

इसने मेरे लिए काम किया। लेकिन मैं ऐसा विशेषज्ञ नहीं हूं, अगर कोई इसे बेहतर तरीके से समझे, अगर इसे समझाया जाए तो बहुत अच्छा होगा।

हैलो,

इसके लायक क्या है, यह समस्या वर्चुअन के डेबनाइज्ड वर्जन से आती है जो कि pkg_resource के डिबंडल्ड वर्जन का उपयोग करता है जो क्रिएशन टाइम में वर्चुअन में जुड़ जाता है:

$ 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 के पाइप स्थापित संस्करण का उपयोग करना एक व्यावहारिक समाधान हो सकता है:

$ 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

उबंटू पर, आप उबंटू virtualenvपैकेज को हटाकर और से नया संस्करण स्थापित करके इसे ठीक कर सकते हैं pip:

sudo apt remove virtualenv
sudo pip install -U virtualenv
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.