मैं 'ImportError:' को कैसे ठीक करूं: नाम अधूरा आयात नहीं कर सकता?


284

जब मैं pipया के साथ कुछ भी स्थापित करने की कोशिश करता pip3हूं, मुझे मिलता है:

$ sudo pip3 install python3-tk
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    load_entry_point('pip==1.5.6', 'console_scripts', 'pip3')()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 356, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2476, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2190, in load
    ['__name__'])
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 61, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/lib/python3/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/lib/python3/dist-packages/pip/download.py", line 25, in <module>
    from requests.compat import IncompleteRead
ImportError: cannot import name 'IncompleteRead'

मेरे पास उबंटू 14.10 सिस्टम है।

मैं इस समस्या को कैसे ठीक करुं?


1
संभवतः संबंधित: stackoverflow.com/questions/27318535/…
cel

@सेल: यह कोई डुप्लिकेट नहीं है, क्योंकि यह विंडोज़ के लिए है और मैंने पहले ही देख लिया है।
मार्टिन थोमा

Ubuntu के इश्यू ट्रैकर के लिए स्वीकृत उत्तर बिंदुओं में लिंक - इसलिए यह समस्या विंडोज़ विशिष्ट नहीं लगती है। क्या आपने OPसुझाए गए अजगर को पुनः स्थापित करने की कोशिश की है ?
cel

@ कोई बात नहीं, मैंने अभी एक बहुत ही सरल उपाय खोजा है।
मार्टिन थोमा

4
... कौन सी थी?
जोनाथन हार्टले

जवाबों:


433

हालांकि यह पिछला उत्तर कारण हो सकता है, इस समाधान ने मेरे लिए एक समाधान के रूप में काम किया Ubuntu 14.04:

पहले पैकेज प्रबंधक से पैकेज निकालें:

# apt-get remove python-pip

और फिर बगल में नवीनतम संस्करण स्थापित करें:

# easy_install pip

(@Aufziehvogel, @JunchaoGu से साभार)


10
रुचि के लिए --upgrade (-U):: बल उन्नयन (नवीनतम संस्करणों के लिए PyPI खोजता है)
मार्टिन थोमा

11
आपको बस सावधान रहना है, न कि अपने मूल पैकेज मैनेजर (एप्ट) को भ्रमित करना है easy_install। यदि संभव हो तो, मैं apt-get remove pipऔर फिर करने की सलाह दूंगा easy_install pip
फूफीजेवोगेल

16
@Aufziehvogelapt-get remove python-pip
अंडोलेग्स

7
मूल रूप से यह जवाब स्थिति को और भी बदतर बना देता है।
hek2mgl

7
मेरे लिए, यह 'apt-get remove python3-pip' था, इसके बाद 'apt-get install python3-setuptools', इसके बाद 'easy_install3 pip'
जेसन Pepas

85

यह समस्या आपके पाइप स्थापना और आपके अनुरोधों की स्थापना के बीच एक बेमेल के कारण होती है।

अनुरोध संस्करण के रूप में 2.4.0 requests.compat.IncompleteRead को हटा दिया गया हैजुलाई 2014 से पाइप के पुराने संस्करण , अब भी निर्भर हैं IncompleteRead। पाइप के वर्तमान संस्करण में, आयात IncompleteReadको हटा दिया गया है।

तो दोष देने वाला या तो है:

  • सार्वजनिक एपीआई को जल्दी से हटाने के लिए अनुरोध
  • पाइप को धीरे-धीरे अपडेट करने के लिए उबंटू

आप उबंटू के माध्यम से पाइप को अपडेट करके (यदि कोई नया संस्करण है) या उबंटू से अलग पाइप स्थापित करके इस समस्या को हल कर सकते हैं।


3
पाइप स्थापित अनुरोध -U, समस्या को ठीक किया।
जोंकिनाडा

2
@jonincanada जब पाइप क्रैश होता है तो मुझे पाइप कमांड कैसे चलाना चाहिए?
पीटर

80

पाइप 3 को ठीक करने के लिए (Ubuntu 14.10 पर काम किया गया):

easy_install3 -U pip

2
यह Ubuntu 14.04 में भी काम करता है। ध्यान रखें /usr/local/bin/pipकि यह एक स्थापित है जो Python3 के लिए है; पहले pipएक पायथन 2 संस्करण चला। मैंने इसे /usr/local/bin/pipपूरी तरह से अक्षम करके तय किया है इसलिए मुझे स्पष्ट रूप से चलना होगा pip2या pip3
नेल्सन

3
के Jessieलिए डेबियन पर python2.7- के साथ पाइप purging sudo apt-get purge python-requestsऔर apt-get (एक और जवाब पर दिखाया गया है) के साथ पुनर्स्थापित करने के बाद , easy_install -U pipचाल चल रहा था।
मिकीएलएल

1
अपने से अधिक किसी चीज के लिए; यह वह फिक्स है जिसने मेरे लिए काम किया।
हामिद

एक जादू की तरह काम करता है!
विफल वैज्ञानिक

33

या आप सभी को हटा सकते हैं requests

उदाहरण के लिए:

  • rm -rf /usr/local/lib/python2.7/dist-packages/requests*

इसने मेरे लिए काम किया। क्या मुझे पता है कि अजगर-पाइप की स्थापना के अनुरोधों का क्या संबंध है
Roselyn Verbo Domingo

यदि आप requestsमॉड्यूल को देखते हैं, तो आप देखेंगे कि HTTP अनुरोध भेजने के लिए यह मॉड्यूल / lib उपयोग है। pipमॉड्यूल को आपके द्वारा हटाए गए requests`पायथन पैकेज इंडेक्स . And the रिक्वेस्ट` से पैकेज डाउनलोड करने के लिए मॉड्यूल की pipआवश्यकता होती है, जिसका एक और संस्करण है जिसे इंस्टॉल करने की आवश्यकता है।
मारियस स्टैंका

यह मेरे लिए भी काम किया; मैं उस त्रुटि में भाग गया जब एक एन्सिबल प्लेबुक चला रहा था जो कि pipरास्पियन जेसी (रास्पबेरी पाई के लिए) की एक नई / नई स्थापना पर निर्भरता स्थापित करने के लिए मॉड्यूल का उपयोग करता था । अनुरोध डिस्ट पैकेज को हटाने के बाद, सब कुछ बहुत अच्छा काम करता है।
जेरलिंग्लुगी

मेरे लिए भी काम किया। मैंने अपने OS को wheezy से jessie में अपग्रेड किया है, इसलिए हो सकता है कि कुछ टूट गया हो। ऊपर बताई गई तीन विधियां मेरे लिए पहले काम की नहीं थीं। हालाँकि अगर मैंने मेथड 3 का इस्तेमाल किया और फिर rm -rf कमांड से मैंने पाया कि यह काम करता है।
Eamonn केनी

यह काम किया, जबकि अभी भी debian रेपो से पाइप रखने। आपका बहुत बहुत धन्यवाद!
स्टीफन

23

14.04 उबुन्टू पर, मैंने पाइप इंस्टॉलेशन बूटस्ट्रैप स्क्रिप्ट का उपयोग करके इसे हल किया, जैसा कि प्रलेखन में वर्णित है

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

यह एक विकास के वातावरण के लिए एक ठीक समाधान है।


यह समस्या को हल करता है। बहुत बुरा है कि इस तरह का एक मुद्दा अभी भी एलटीएस संस्करण पर खुला है।
गणेशकुमार १४'१५

मुझे Ubuntu 15 में यह समस्या थी और यह काम करता हुआ प्रतीत होता है। Get-pip.py स्क्रिप्ट ने कहा कि मेरे पास पहले से ही वह पैकेज था जिसकी मुझे तलाश थी लेकिन मैंने सुझाव दिया कि मैं -H फ्लैग के साथ sudo का उपयोग करता हूं जो मुझे लगता है कि काम कर रहा है।
रिक हेंडरसन

17

समस्या पायथन मॉड्यूल है requests । इसके द्वारा तय किया जा सकता है

$ sudo apt-get purge python-requests
[now requests and pip gets deinstalled]
$ sudo apt-get install python-requests python-pip

यदि आपको पायथन 3 के साथ यह समस्या है, तो आपको python3इसके बजाय लिखना होगा python


4
यह बिल्कुल अच्छा उपाय है।
टिंकर सन

8
के बारे में जानने के लिए अच्छा है purge। यह अभी भी पाइप के एक कार्यशील संस्करण को स्थापित नहीं करता है और जब मैंने from requests.compat import IncompleteReadअजगर सीएलआई में चलाने की कोशिश की तो यह वही त्रुटि थी। उपरोक्त आदेशों को चलाने के बाद डीआईडी ​​क्या काम करता है, चल रहा थाeasy_install -U pip
मिकीएलएल

यह सबसे अच्छा समाधान है जिसमें easy_install शामिल नहीं है, और पहले पाइप को हटाकर आपके सिस्टम को बोर नहीं करता है।
मार्क टैमस्की

9

यह आपके लिए काम करना चाहिए। इन सरल चरणों का पालन करें।

पहले, चलो उस पाइप को हटा दें जो पहले से ही स्थापित है इसलिए यह किसी भी त्रुटि का कारण नहीं होगा।

टर्मिनल खोलें।

प्रकार: सूद apt-get remove python-pip

यह पहले से स्थापित पाइप को हटा देता है।

विधि-1

चरण 1 सूडो easy_install -U पाइप

यह पाइप नवीनतम संस्करण स्थापित करेगा।

और अपना पता वापस कर देगा: स्थापित /usr/local/lib/python2.7/dist-packages/pip-6.1.1-py2.7.egg

या

विधि-2

स्टेप: 1 इस लिंक पर जाएं

स्टेप: 2 राइट क्लिक करें >> Save as .. with name get-pip.py।

चरण: 3 का उपयोग करें: सीडी को उसी निर्देशिका में जाना है जहां आपकी get-pip.py फ़ाइल है

चरण 4 उपयोग करें: sudo python get-pip.py

यह पाइप नवीनतम संस्करण स्थापित करेगा।

या

विधि -3

चरण 1 उपयोग करें: sudo apt-get install अजगर-पाइप

यह पाइप नवीनतम संस्करण स्थापित करेगा।


क्या आप अपने उत्तर में थोड़ा और विवरण जोड़ सकते हैं?
अबरिसोन

ज़रूर। लेकिन आप कहां उलझन में थे?
kiok46

धन्यवाद मैंने अजगर-पाइप को हटा दिया और फिर easy_install का उपयोग किया। पाइप फिर से काम कर रहा है।
फानसेन १४'१५ को

@ फ़ैनसेन कोई समस्या नहीं है (y)
kiok46

8

बस दौड़ने से easy_install -U pipमेरी समस्या हल हो गई।


2
अपने विस्मय को व्यक्त करने के लिए पुरानी टिप्पणी करते हुए कि मुझे लोगों के एक धागे के माध्यम से उतारा जाना चाहिए, विभिन्न सॉफ्टवेयर्स को शुद्ध करने के लिए बस यह बहुत ही सरल, उपयोगी समाधान खोजने के लिए। निश्चित नहीं है कि प्रश्न पूछे जाने पर सभी सीमाएँ क्या थीं, लेकिन यह काम किया
mttpgn

5

जाँघ की जाँच करें आप में requestsबैठे का एक पुराना संस्करण है ~/.local/lib/python2.7/site-packages/और इसे हटा दें अगर यह मामला है (अपने अजगर संस्करण को प्रतिबिंबित करने के लिए पथ बदलें)। इससे मेरे लिए समस्या हल हो गई।


5

Ubuntu पर पाइप का मेरा संस्करण बताता है:

  pip install --upgrade pip

4
मेरे लिए काम नहीं किया क्योंकि इस त्रुटि से पाइप पूरी तरह से बोर हो गया है। कोई भी उपयोग (यहां तक ​​कि pip --version) cannot import name IncompleteReadत्रुटि को प्रदर्शित करता है , इसलिए पाइप खुद को अपग्रेड करने में असमर्थ रूप से असमर्थ है
अबे वेलेकर

दरअसल यह उबंटू 14.04 (बूटस्ट्रैप से minbase) की एक साफ स्थापना पर काम करता है । किसी तरह मॉड्यूल का pipजिक्र किए बिना खुद को अपडेट करने का प्रबंधन करता है requests
ony

यह एक टूटी हुई पाइप के साथ काम नहीं करेगा - एक चिकन-या-अंडा दुविधा।
अरनी 97

4

विंडोज में, यह एक प्रशासनिक संकेत से काम करता है:

  • हटाएं C:\Python27\Lib\site-packages\requests*
  • easy_install requests==2.3
  • pip install --upgrade pip
  • pip install --upgrade requests

स्थापित / पुनः इंस्टॉल किया गया python-requestsऔर python3-requestsजो निश्चित पिप 3 है। ने python3.6beta तब python3.6rc स्थापित करने की गलती की थी।
noobninja

3

मैंने हर उत्तर की कोशिश की, लेकिन वह नहीं कर सका।

यह किया और काम किया

sudo apt-get purge python-virtualenv
sudo pip install pip -U

उसके बाद मैंने बस पाइप के साथ virtualenv स्थापित किया

sudo pip install virtualenv

मैंने उस virtualenv का निर्माण किया, जिस पर मैं काम कर रहा था और पैकेज आसानी से स्थापित हो गया था। source /bin/activate उदाहरण के लिए virtualenv में जाओ और अपने पैकेज को स्थापित करने का प्रयास करें, उदाहरण के लिए:

pip install terminado

यह मेरे लिए काम करता है, हालांकि मैं python2.7 python3 का उपयोग नहीं कर रहा था


0

जाँच करें कि क्या किसी टर्मिनल विंडो में अजगर इंटरप्रेटर जीवित है। यदि ऐसा है तो इसे मार दो और कोशिश करो sudo pipजो मेरे लिए काम करता है।


0
  1. सूद apt-get remove python-pip
  2. sudo easy_install request == 2.3.0
  3. sudo apt-get install अजगर-पाइप


0

CentOS के लिए मैंने इसका उपयोग किया और इसने काम किया कृपया निम्न कमांड का उपयोग करें:

sudo pip uninstall requests
sudo pip uninstall urllib3
sudo yum remove python-urllib3
sudo yum remove python-requests

(पुष्टि करें कि उन सभी पुस्तकालयों को हटा दिया गया है)

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