पाइप अपग्रेड करने के बाद त्रुटि: 'मुख्य' नाम आयात नहीं कर सकता


467

जब भी मैं पाइप का उपयोग करके किसी भी पैकेज को स्थापित करने की कोशिश कर रहा हूं, मुझे यह आयात त्रुटि मिल रही है:

guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'


guru@guru-notebook:~$ cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
    sys.exit(main())

यह पहले ठीक काम कर रहा था, मुझे यकीन नहीं है कि यह इस त्रुटि को क्यों फेंक रहा है। मैंने इस त्रुटि के बारे में खोज की है, लेकिन इसे ठीक करने के लिए कुछ भी नहीं मिला।

कृपया मुझे बताएं कि यदि आपको और विस्तार की आवश्यकता है, तो मैं अपने प्रश्न को अपडेट करूंगा।


1
इस लिंक पर अतिरिक्त चर्चा ।
दिग्विजय

7
मेरे पास एक ही मुद्दा था क्योंकि मैं pip install --upgrade pipएक सर्वर पर पाइप को अपग्रेड करता था जहां मेरे पास व्यवस्थापक विशेषाधिकार नहीं हैं। python -m pip uninstall pipमेरी समस्या को हल करने के साथ पाइप की स्थापना रद्द करें ।
फाद

जवाबों ने मेरी मदद नहीं की। यह मेरा मुद्दा था: github.com/pypa/pipenv/issues/2095
attienne

जवाबों:


846

आपको अनजाने में अपने सिस्टम के पाइप को अपग्रेड करना होगा (शायद कुछ इस तरह से sudo pip install pip --upgrade)

पाइप 10.x समायोजित करता है जहां इसके आंतरिक स्थित हैं। pip3आप जो कमांड देख रहे हैं, वह आपके पैकेज मेंटेनर द्वारा प्रदान किया गया है (संभवतः यहां आधारित डेबियन?) और पाइप द्वारा प्रबंधित फ़ाइल नहीं है।

आप इस बारे में पिप के मुद्दे ट्रैकर पर अधिक पढ़ सकते हैं

आप शायद अपने सिस्टम पाइप को अपग्रेड नहीं करना चाहते हैं और इसके बजाय एक virtualenv का उपयोग करें।

pip3बाइनरी को पुनर्प्राप्त करने के लिए आपको आवश्यकता होगी sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

यदि आप "असमर्थित क्षेत्र" (सिस्टम पैकेज प्रबंधक के बाहर सिस्टम पैकेज को अपग्रेड करना) जारी रखना चाहते हैं, तो आप संभवतः python3 -m pip ...इसके बजाय दूर हो सकते हैं pip3


28
sudo apt install python3-pip --reinstallइस मुद्दे को तय नहीं किया, हालांकि मैं पैकेज का उपयोग कर स्थापित कर सकते हैं python3 -m pip। आपकी सहायता के लिए धन्यवाद। मैं इसे स्वीकार कर रहा हूं।
g_p

2
@g_p ने "फ़िक्सअप" निर्देशों को अपडेट किया - बस उन्हें डॉकटर में सत्यापित किया (मुझे ऐसा पहली बार करना चाहिए था!)
एंथनी सॉटिले

5
मुझे कमांड का उपयोग करने की आवश्यकता है 'अजगर पाइप की स्थापना रद्द करें पाइप' के रूप में 'sudo pip अनइंस्टॉल पाइप' ने मूल प्रश्न के समान त्रुटि दी
Mz A

41
धन्यवाद! इससे मदद मिली! sudo python -m pip uninstall pip && sudo apt install python-pip --reinstallPython2 के लिए उपयोग करें !
बरमेली

1
विंडोज पर उबंटू के लिए काम करता है। समाधान क्या है @Barmaley python2 (डिफ़ॉल्ट अजगर दुभाषिया) के लिए सुझाव देता है।
jdhao

110

हम पाइप फ़ाइल को संशोधित करके त्रुटि को साफ कर सकते हैं।

फ़ाइल का स्थान जांचें:

$ which pip

पथ -> / usr / बिन / पाइप

उस स्थान ( / usr / bin / pip ) पर जाएं और टर्मिनल खोलें

दर्ज: $ sudo nano pip

आप देख सकते हैं:

import sys
from pip import main
if __name__ == '__main__':
     sys.exit(main())

में बदलो:

import sys
from pip import __main__
if __name__ == '__main__':
     sys.exit(__main__._main())

तब ctrl + o परिवर्तन और निकास लिखें

आशा है ये करेंगे !!


1
इन परिवर्तनों को करने से समस्या ठीक नहीं हुई, बल्कि इसे मूल पाठ में वापस बदल दिया। ¯_ (¯) _ / ¯
डेविड

2
मैंने यह कोशिश की, लेकिन मिलाAttributeError: module 'pip.__main__' has no attribute 'main'
dnnagy

4
सुनिश्चित करें कि आपने _main () नहीं मुख्य ()
vijay Athithya

2
नवीनतम संस्करण में pip3, main()इसे स्थानांतरित कर दिया गया है pip._internal। आयात विवरण को बदल दिया जाना चाहिएfrom pip._internal import main
Yossarian42

2
एक जादू की तरह काम किया! धन्यवाद
महेश Nanayakkara

69

उबंटू परिवार, डेबियन, लिनक्स मिंट उपयोगकर्ताओं के लिए

ऊपर एंथोनी के स्पष्टीकरण के लिए धन्यवाद , आप अपने मूल सिस्टम पाइप (in / usr / bin / और dist-package /) को बनाए रख सकते हैं और संघर्ष को हल करने के लिए मैन्युअल रूप से स्थापित पाइप (~ / .local /) में हटा सकते हैं:

$ python3 -m pip uninstall pip

उबंटू / डेबियन पाइप v8.1.1 (16.04) python3-pipडेबियन पैकेज से (देखें $ pip3 -V) नवीनतम पाइप v10.0.1 के रूप में एक ही खोज परिणाम दिखाता है, और PyPI से नवीनतम मॉड्यूल को ठीक स्थापित करता है। इसमें 2016 से कार्यशील pipकमांड (पहले से ही $ PATH) है, साथ ही --userडिफ़ॉल्ट रूप से अच्छा विकल्प पैच-इन है। पाइप रिलीज नोट्स को देखते हुए , नए संस्करण ज्यादातर उपयोग-केस विशिष्ट बग फिक्स और कुछ नई सुविधाओं के बारे में हैं, इसलिए नहीं हर किसी को अभी तक पाइप को अपग्रेड करना है। और नए पाइप 10 को वैसे भी पायथन virtualenvs पर तैनात किया जा सकता है।

लेकिन पिप्स की परवाह किए बिना, आपका ओएस पाइप की आवश्यकता के बिना, एपीटी के साथ सामान्य पायथन मॉड्यूल (संख्यात्मक सहित) को जल्दी से स्थापित करने की अनुमति देता है, उदाहरण के लिए:
$ sudo apt install python3-numpy python3-scipy(सिस्टम निर्भरता के साथ)
$ sudo apt install python3-pip(डेबियन-पैचेड पाइप, थोड़ा पुराना है लेकिन यह कोई फर्क नहीं पड़ता)

त्वरित उपयुक्त सिंटैक्स अनुस्मारक ( man aptविवरण के लिए कृपया देखें ):
$ sudo apt update(अप-टू-डेट स्रोतों से उबंटू पैकेज इंडेक्स फ़ाइलों को फिर से लिखना)
$ apt search <python-package-name> (सभी उपलब्ध पैकेजों पर पूर्ण पाठ-खोज)
$ apt show <python-package-name>(विस्तृत पैकेज विवरण प्रदर्शित करता है)
$ sudo apt install <python-package-name>

python-पाइथन 2 के लिए उपसर्ग पैकेज के नाम हैं; और python3-पाइथन 3 (जैसे python3- पांडा) के लिए उपसर्ग हैं। हजारों हैं, और वे डेबियन और उबंटू के भीतर एकीकरण परीक्षण से गुजरते हैं। जब तक आप प्रति-उपयोगकर्ता स्तर ( pip install --userविकल्प) या virtualenv / venv के भीतर स्थापित करने की कोशिश नहीं करते, तब तक उपयुक्त हो सकता है जो आपको चाहिए। ये सिस्टम संकुल के रूप में भी आभासी envs से सुलभ हैं virtualenv शान से आयात पर प्रणाली libs का उपयोग कर अपने envs मॉड्यूल की प्रतियां नहीं दिया है अगर करना प्रारंभ कर देगा। आपका कस्टम-इंस्टॉल (पाइप के साथ --user) प्रति-उपयोगकर्ता मॉड्यूल ~/.local/libउन्हें भी ओवरराइड करेगा।

ध्यान दें, चूंकि यह एक सिस्टम-वाइड इंस्टॉलेशन है, आपको शायद ही इन्हें हटाने की आवश्यकता होगी (OS निर्भरता के बारे में दिमाग होना चाहिए)। यह कई सिस्टम निर्भरता वाले पैकेजों के लिए सुविधाजनक है (जैसे कि स्कैपी या मैटप्लोटलिब के साथ), क्योंकि एपीटी ट्रैक रखेगा और सभी आवश्यक सिस्टम लिबास और सी एक्सटेंशन प्रदान करेगा, जबकि पाइप के साथ ऐसी कोई गारंटी नहीं है

वास्तव में, सिस्टम-वाइड पाइथन पैकेज (प्रति-उपयोगकर्ता, होम डायर स्तर या निम्न के विपरीत) के लिए, उबंटू OS को तोड़ने से बचने के लिए APT पैकेज मैनेजर (बजाय ) का उपयोग करने की अपेक्षा करता हैsudo pip : sudo pip3बहुत ही /usr/lib/python3/dist-packagesनिर्देशिका को लक्षित करता है जहां APT OS को स्टोर करता है -संवेदी मॉड्यूल हाल ही में डेबियन / उबंटू रिलीज़ पायथन 3 पर बहुत अधिक निर्भर करता है, इसलिए इसके पूर्व-स्थापित मॉड्यूल द्वारा प्रबंधित किया जाता है aptऔर इसे बदला नहीं जाना चाहिए।

इसलिए यदि आप pip3 installकमांड का उपयोग करते हैं , तो कृपया सुनिश्चित करें कि यह अलग-थलग आभासी देव वातावरण में चलता है, जैसे कि virtualenv ( sudo apt install python3-virtualenv), या Python3 बिल्ट-इन ( -m venv), या एक प्रति-उपयोगकर्ता स्तर पर ( --userपाइप विकल्प, उबंटू-प्रदान में डिफ़ॉल्ट) 2016 के बाद से पिप), लेकिन नहीं पूरे सिस्टम में (कभी नहीं sudo pip3!), पिप क्योंकि हस्तक्षेप अपार्ट पैकेज प्रबंधक के संचालन के साथ और Ubuntu ओएस को प्रभावित कर सकता घटकों जब एक सिस्टम-प्रयुक्त अजगर मॉड्यूल अप्रत्याशित रूप से बदल जाता है। सौभाग्य!


पी। एस उपरोक्त सभी 'आदर्श' समाधान (डेबियन / उबंटू रास्ते) के लिए है।

यदि आप अभी भी विशेष रूप से नए pip3 v10 का उपयोग करना चाहते हैं, तो 3 त्वरित वर्कअराउंड हैं:

  • बस एक नया बैश सत्र खोलें (एक नया टर्मिनल टैब, या टाइप करें bash) - और pip3 v10 उपलब्ध हो जाता है (देखें pip3 -V)। डेबियन के pip3 v8 स्थापित रहता है लेकिन टूट गया है; या
  • $ hash -d pip3 && pip3 -V $ PATH में pip3 pathname ताज़ा करने की कमांड । डेबियन के pip3 v8 स्थापित रहता है लेकिन टूट गया है; या
  • $ sudo apt remove python3-pip && hash -d pip3अपने नए pip3 v10 के पक्ष में डेबियन के pip3 v8 को पूरी तरह से अनइंस्टॉल करने की कमांड ।

नोट: आपको हमेशा --userकिसी भी गैर-डेबियन-प्रदान किए गए पाइप में झंडा जोड़ने की आवश्यकता होगी , जब तक कि आप एक वर्चुअन में न हों! (यह ~/.local/2016 के बाद से , डेबियन / ubuntu प्रदान की python3- पाइप और अजगर-पाइप में डिफ़ॉल्ट रूप से , अजगर पैकेज को दर्शाती है)। Virtualenv के बाहर, पाइप 10 सिस्टम-वाइड का आपका उपयोग, वास्तव में उबंटू / डेबियन द्वारा समर्थित नहीं है। कभी नहीं sudo pip3!

अधिक जानकारी:
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100


तुम मुझे समझते मदद कर सकते हैं क्यों का एक उन्नत संस्करण को स्थापित करने से pip स्थानीय स्तर पर के साथ --user, यानी बिना sudo, उपयुक्त स्थापित चलाने के लिए अपनी क्षमता को प्रभावित करता है pip? मुझे लगा कि दोनों सह-अस्तित्व में होंगे। लेकिन जैसा कि इस जिस्ट से पता चलता है कि मैंने एक के बाद एक ब्रेक लगाए python3 -m pip install --user --upgrade pip। मैं एक समाधान की तलाश में नहीं हूं - मैं वास्तव में यह जानने के लिए उत्सुक हूं कि यहां क्या हो रहा है।
जॉर्ज हॉकिन्स

1
@George यह पाइप पुस्तकालयों और उनके आवरणों के बीच बेमेल के कारण होता है जो उन्हें आयात करते हैं। प्रणाली पिप आदेश तुरंत (के किसी भी लागू किए बिना चलाने का प्रयास समाधान ) अभी भी पिप आवरण स्क्रिप्ट का उपयुक्त से इंस्टॉल किए गए संस्करण कहेंगे /usr/bin/pip3बल्कि के रूप में स्थापित एक से --user( ~/.local/bin/pip*) ओएस प्रणाली $ पथ अभी भी चलाने के लिए सेट है कि के अनुसार रैपर का सिस्टम संस्करण, लेकिन इसकी लाइब्रेरी नहीं ..
एलेक्स सी।

2
@George इसका कारण यह है कि अब एक नया पाइप पैकेज स्थापित किया गया है, ~/.local/lib/python3.?/site-packages/pipजिसके सापेक्ष पायथन आयात में सिस्टम एप्टीट्यूड की पूर्वता है (उपयोगकर्ता-स्थानीय साइट वैश्विक स्तर पर प्राथमिकता लेती है)। और क्योंकि पुराने रैपर पाइप पैकेज के नए संस्करण के खिलाफ या उसके वर्ग के from pip import mainबजाय कोशिश करते हैं, इसलिए जीस्ट से पाइप कमांड विफल रहता है । तो दोनों पिप्स (डिस्क पर) मौजूद हो सकते हैं, लेकिन मूल सिस्टम एक की कार्यक्षमता "टूटी हुई" होगीfrom pip._internal__main__ImportError: cannot import name 'main'
एलेक्स सी।

के लिए +1 --userpip install --userयह मेरे लिए क्या किया है। (मेरे पास
२., है, २.th

46

केवल एक कदम में हल।

मुझे भी इस मुद्दे का सामना करना पड़ा, लेकिन इसे बिना किसी परेशानी के और बिना समय बर्बाद किए केवल 1 कमांड द्वारा हल किया जा सकता है और मैंने इसे कई प्रणालियों पर आजमाया है जो इस मुद्दे का सबसे साफ समाधान है। और वह है:

पायथन 3 के लिए: - sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

इसके द्वारा, आप बस संकुल का उपयोग करके स्थापित कर सकते हैं pip3। उपयोग की जाँच करने के लिए pip3 --version

पुराने संस्करणों के लिए, का उपयोग करें sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall:।

इसके द्वारा, अब आप केवल संकुल का उपयोग कर स्थापित कर सकते हैं pip। उपयोग की जाँच करने के लिए pip --version


31

के python -m pip installबजाय का उपयोग करेंpip install

उदाहरण:

python -m pip install --user somepackage
python3 -m pip install --user somepackage

pip(Resp। pip3) निष्पादन अपने distro द्वारा प्रदान की (है python-pipउबंटू 16.04 पर पैकेज) और स्थित /usr/bin/pip

इसलिए, यह pipपैकेज के साथ अप-टू-डेट नहीं रखा जाता है क्योंकि आप पाइप को अपग्रेड करते हैं, और टूट सकते हैं।

यदि आप python -m pipसीधे उपयोग करते हैं, जैसे:

python -m pip install --user somepackage
python3 -m pip install --user somepackage

यह आपके पायथन पथ से गुजरता है, पाइप के नवीनतम संस्करण को खोजता है और उस फ़ाइल को निष्पादित करता है।

यह इस तथ्य पर निर्भर करता है कि फ़ाइल के माध्यम से निष्पादन योग्य है import, लेकिन यह एक बहुत ही मानक प्रकार का इंटरफ़ेस है, और इसलिए हैकर डेबियन स्क्रिप्ट की तुलना में टूटने की संभावना कम है।

तो मैं निम्नलिखित उपनाम जोड़ने की सलाह देता हूं .bashrc:

pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )

Ubuntu 18.04 /usr/bin/pip3फ़ाइल करता है:

from pip import main

और संभवतः किसी बिंदु mainसे हटा दिया गया था pipजो कि चीजों को तोड़ दिया गया है।

ब्रेकिंग पाइप कमिट प्रतीत होता है: 95bcf8c5f6394298035a7332c441868f3b0169f4 "सभी आंतरिक API को pip._internal पर ले जाएं" जो कि पाइप 18.0 में चला गया।

pip39.0.1 से 18.0 तक के अपडेट के बाद उबंटू 16.04 में परीक्षण किया गया ।

pyenv

हालांकि, गंभीर अजगर विकास के लिए, मैं सिर्फ यह सलाह दूंगा कि आप अपने स्थानीय अजगर को pyenv + virtualenv के साथ स्थापित करें, जो इस उबंटू बग के आसपास भी मिलेगा: /ubuntu/682869/how-do-i- स्थापित एक अलग-अजगर-संस्करण का इस्तेमाल करने वाली-apt-get / 1195153 # 1195153


3
5 घंटे की खोज के बाद, इसने मेरे लिए काम किया। अगर आप मुझे अपना पता भेजते हैं, तो मैं आपको फूल दे सकता हूं। धन्यवाद।
cagri

18

आप पाइप को पुनर्स्थापित करके इस समस्या को हल कर सकते हैं।

पाइप को पुनर्स्थापित करने के लिए निम्न कमांड लाइन कमांड में से एक का उपयोग करें:

को Python2:

python -m pip uninstall pip && sudo apt install python-pip --reinstall

python3:

 python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

16

जांचें कि क्या पाइप को किसी अन्य पथ पर कैश किया गया है, ऐसा करने के लिए, $ जो कि पाइप को कॉल करें और जांचें कि पथ त्रुटि में संकेत दिए गए से अलग है, यदि यह मामला चलता है:

$ hash -r

जब कैश स्पष्ट होगा, तो पाइप फिर से काम कर रहा होगा। संदर्भ: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory


8

मैं एक ऐसे सिस्टम पर चल रहा हूँ जहाँ मेरे पास sudo apt है लेकिन कोई sudo pip नहीं है। (और कोई सु उपयोग नहीं है।) मैंने पाइप से सलाह का पालन करके खुद को इसी स्थिति में पा लिया है:

आप पाइपलाइन संस्करण 8.1.1 का उपयोग कर रहे हैं, हालांकि 18.0 उपलब्ध है। आपको 'पाइप इंस्टॉल - अपग्रेड पाइप' कमांड के माध्यम से अपग्रेड करने पर विचार करना चाहिए।

अन्य फ़िक्सेस में से किसी ने भी मेरे लिए काम नहीं किया, क्योंकि मेरे पास पर्याप्त व्यवस्थापक विशेषाधिकार नहीं हैं। हालाँकि, कुछ चीजें इस पर पढ़ने से मेरे साथ अटक गईं:

  • मुझे ऐसा नहीं करना चाहिए था। ज़रूर, पाइप ने मुझे बताया। यह झूठ बोला।
  • उपयोग करने वाला-user उपयोगकर्ता-केवल निर्देशिका पर ध्यान केंद्रित करके बहुत सारे मुद्दों को हल करता है।

इसलिए, मुझे यह कमांड लाइन मिली कि मुझे वापस उसी जगह पर वापस लाने के लिए काम करना है जहाँ मैं था। यदि आप 8.1.1 से भिन्न संस्करण का उपयोग कर रहे हैं, तो आप स्पष्ट रूप से लाइन के उस हिस्से को बदलना चाहेंगे।

python -m pip install --force-reinstall pip==8.1.1 --user

यह केवल एक चीज है जो मेरे लिए काम करती है, लेकिन यह पूरी तरह से काम करती है!


7

के साथ पुनर्प्राप्त python3 -m pip install --user pip==9.0.1(या काम किया संस्करण)


5

नई LXC (स्ट्रेच) का उपयोग करके Pixelbook पर मेरे साथ भी वही हुआ। यह समाधान स्वीकृत एक के समान है, एक सूक्ष्म अंतर के साथ, जो मेरे लिए निश्चित pip3 है।

sudo python3 -m pip install --upgrade pip

उस संस्करण को टक्कर दी, और अब यह अपेक्षा के अनुरूप काम करता है।

मैंने इसे यहाँ पाया ... Python.org: सुनिश्चित करें कि पाइप अप-टू-डेट है


4

मैं अपने Ubuntu 16.04 प्रणाली पर एक ही समस्या से मुलाकात की। मैं निम्नलिखित कमांड के साथ पाइप को फिर से स्थापित करके इसे ठीक करने में कामयाब रहा:

curl https://bootstrap.pypa.io/get-pip.py | sudo python3


इसका यह लाभ है कि आप इसे स्रोत से स्थापित करते हैं, और उपरोक्त में से कोई भी एक साफ खाली डेबियन 9 (मेरे समर्पित सर्वर प्रदाता से) पर काम नहीं करता है
पीटर रोज़मेन्स

सुपर यूजर को इंटरनेट कर्लिंग करना, क्या गलत हो सकता है!
Sum1sAdmin

3

ऊपर दिए गए आदेशों ने मेरे लिए काम नहीं किया, लेकिन वे बहुत उपयोगी थे:

sudo apt purge python3-pip
sudo rm -rf '/usr/lib/python3/dist-packages/pip'  
sudo apt install python3-pip
cd
cd .local/lib/python3/site-packages
sudo rm -rf pip*  
cd
cd .local/lib/python3.5/site-packages
sudo rm -rf pip*  
sudo pip3 install jupyter

2

उबंटू 18.04.1 बायोनिक बीवर में, आपको उचित वातावरण प्राप्त करने के लिए लॉग आउट और लॉग इन (पुनः आरंभ करना आवश्यक नहीं) करने की आवश्यकता है।

$ sudo apt install python-pip

$ pip --version
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip install --upgrade pip

$ pip --version
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

$ exit
<login>

$ pip --version
pip 18.1 from /home/test/.local/lib/python2.7/site-packages/pip (python 2.7)

1

मैं sudo apt remove python3-pip तब pipकाम करता हूं ।

 ~ sudo pip install pip --upgrade
[sudo] password for sen: 
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'
  ~ sudo apt remove python3-pip   
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libexpat1-dev libpython3-dev libpython3.5-dev python-pip-whl python3-dev python3-wheel
  python3.5-dev
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  python3-pip
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 569 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 215769 files and directories currently installed.)
Removing python3-pip (8.1.1-2ubuntu0.4) ...
Processing triggers for man-db (2.7.5-1) ...
  ~ pip

Usage:   
  pip <command> [options]

1
ऐसा इसलिए pipहै क्योंकि पायथन 2 के लिए है। ओपी उपयोग करता है pip3, के पायथन 3 संस्करण pip, जिसे आपने अभी हटा दिया है। ये दोनों विशिष्ट हैं और विनिमेय नहीं हैं।
नेस्टाइन

1

अजगर संस्करण 2.7 के लिए @Anthony समाधान सही काम करता है, अजगर 3 को अजगर के रूप में निम्नानुसार बदलकर :

sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall

1

मेरे द्वारा उपयोग की pip3गई त्रुटि को ठीक करने के लिए क्या काम किया गया था:

sudo cp -v /usr/local/bin/pip3 /usr/bin/pip3

सब कुछ काम करता है:

 demon@UbuntuHP:~$ pip -V
 pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

 demon@UbuntuHP:~$ pip2 -V
 pip 10.0.1 from /home/demon/.local/lib/python2.7/site-packages/pip (python 2.7)

 demon@UbuntuHP:~$ pip3 -V
 pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

शायद पाइप का नया 10.0.1 वर्जन बाइनरी / usr / बिन में अपडेट नहीं करता है? (जो लगता है कि यह नहीं है)

संपादित करें: यही समस्या उबंटू 18.04 में होती है। सबसे अच्छा समाधान मैंने पाया से पिप बाइनरी सिमलिंक है /home/<user/.local/binकरने के लिए /usr/local/binया /usr/binइस प्रकार, (आपकी पसंद पर निर्भर करता है):

ln -sv /home/<user>/.local/bin/pip /usr/local/bin/pip
ln -sv /home/<user>/.local/bin/pip2 /usr/local/bin/pip2
ln -sv /home/<user>/.local/bin/pip2.7 /usr/local/bin/pip2.7
ln -sv /home/<user>/.local/bin/pip3 /usr/local/bin/pip3
ln -sv /home/<user>/.local/bin/pip3.6 /usr/local/bin/pip3.6

नोट:<user> अपने वर्तमान चल रहे उपयोगकर्ता के साथ बदलें

संबंधित संस्करण (नवीनतम) में हैं:

संस्करण 3.6:

/होम / डेमन / लोकोल / लिबटन 3.6/site-packages/pip (पायथन 3.6)

संस्करण 2.7:

/home/demon/.local/lib/python2.7/site-packages/pip (पायथन 2.7)


इसने मेरी समस्या ठीक कर दी। दूसरे जवाब नहीं दिए।
अमीन हुसनी

1
आप वास्तव में /usr/binहालांकि फ़ाइलों के साथ सीधे खिलवाड़ नहीं किया जाना चाहिए । और, आपका PATHगलत है अगर /usr/local/binपहले नहीं है /usr/bin
ट्रिपल

पाइप बाइनरी में मौजूद नहीं है /usr/local/bin। यह केवल /home/<user>/.local/binऔर / या /home/<user>/.local/lib/python<version>/site-packages/pipनए संस्करणों में है (v10.0 + बाइनरी को अपडेट न करें /usr/bin)। इसलिए कारण एक प्रति या बाइनरी जरूरतों का सिमलिंक में या तो बनाया जाना /usr/binया /usr/local/bin(उपयोगकर्ता वरीयता के आधार पर) तो पिप कमांडलाइन से विश्व स्तर पर चलाया जा सकता है।
क्रिप्टोबाय

निर्देशिका पिप बाइनरी मौजूद हैं और हो जुड़ा हुआ / से नकल करना चाहिए: दानव @ Bionic18: ~ / .local / बिन $ ls पिप pip2 pip2.7 pip3 pip3.6 pipनवीनतम संस्करण पर प्रणाली स्थापित करने के लिए द्विआधारी चूक
cryptoboy


0

मेरे पास भी यही त्रुटि थी, लेकिन python -m pipफिर भी काम कर रहा था, इसलिए मैंने इसे परमाणु विकल्प के साथ तय किया sudo python -m pip install --upgrade pip। इसने मेरे लिए किया।


0

इसके लायक क्या है, मुझे समस्या थी pip(नहीं pip2या pip3):

$ pip -V
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

$ pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip3 -V
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

किसी तरह (मुझे याद नहीं है कि कैसे) मुझे मेरी ~/.localनिर्देशिका में अजगर सामान स्थापित किया गया था । जब मैंने पाइप निर्देशिका को वहां से हटा दिया, pipफिर से काम करना शुरू कर दिया।

$ rm -rf /home/precor/.local/lib/python2.7/site-packages/pip
$ pip -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

0

संकुल के साथ कुछ गड़बड़ है, जब यह डी फ़ाइल / usr / बिन / पाइप उत्पन्न करता है, तो आपको आयात बदलना होगा:

from pip import main

सेवा

from pip._internal import main

यह समस्या हल करती है, मुझे यकीन नहीं है कि यह क्यों उत्पन्न हुई, लेकिन इसने निम्नलिखित मुद्दे में कुछ कहा:

Pyenv पर 10 अपग्रेड के बाद "ImportError: नाम 'मुख्य' आयात नहीं कर सकता"


0

आप यह कोशिश कर सकते हैं:

sudo ln -sf $( type -P pip ) /usr/bin/pip

3
हालांकि यह कोड प्रश्न का उत्तर दे सकता है, लेकिन कुछ संदर्भों को शामिल करना बेहतर होगा, यह समझाता है कि यह कैसे काम करता है और इसका उपयोग कब करना है। कोड-केवल उत्तर लंबे समय में उपयोगी नहीं हैं।
गिउलिओ कैसिन

0

जब मैं pip pip39.0.1 से 19.2.3 तक सिस्टम को अपग्रेड करना चाहता था, तो मैं भी इस समस्या में चला गया ।

चलने के बाद pip3 install --upgrade pip, pipसंस्करण 19.2.3 हो जाता है। लेकिन नवीनतम संस्करण में main()ले जाया गया है pip._internal, जो pip3टूट गया है।

तो फ़ाइल में /usr/bin/pip3, बदलें line 9: के from pip import mainसाथ from pip._internal import main। मुद्दा तय हो जाएगा, के लिए एक ही काम करता है python2-pip। (उबंटू 18.04 वितरण पर परीक्षण किया गया)

@Vincent H. के उत्तर के अनुसार



0

आप बस का उपयोग कर पाइप और pip3 पथ को ठीक कर सकते हैं update-alternatives

पहली चीज जो आपको जांचनी चाहिए वह है आपका चालू $PATH रन echo $PATHऔर देखें क्या आप पा सकते हैं /usr/local/binकि पाइप 3 और पाइप आमतौर पर कहां हैं

एक परिवर्तन है जो आपका सिस्टम यहां देख रहा है /bin/pipऔर /bin/pip3 इसलिए मैं कहूंगा कि आपकी ~/.bash_profileफ़ाइल में जोड़कर पथ को ठीक करें ताकि यह बनी रहे

export PATH=$PATH:/usr/local/bin और फिर जाँच इसके साथ तय की गई है which pipऔरwhich pip3

यदि नहीं, तो update-alternativesअंत में इसे ठीक करने के लिए उपयोग करें

update-alternatives --install /bin/pip3 pip3 /usr/local/bin/pip3 30

और यदि आप pip3 को पाइप को इंगित करना चाहते हैं तो

update-alternatives --install /bin/pip pip /usr/local/bin/pip3 30

0

यह मेरे लिए काम किया!

hash -r pip # or hash -d pip

अब, पाइप स्थापित संस्करण को अनइंस्टॉल करें और निम्न कमांड का उपयोग करके इसे फिर से इंस्टॉल करें।

python -m pip uninstall pip  # sudo
sudo apt install --reinstall python-pip

यदि पाइप टूट गया है, तो उपयोग करें:

python -m pip install --force-reinstall pip

आशा है ये मदद करेगा!


-1

पाइप से मुख्य आयात करें

from pip._internal import main

से पाइप कोड संपादित करें

sudo nano /usr/bin/pip3

क्या आप उत्तर को संपादित कर सकते हैं और इसे बेहतर बता सकते हैं? यह बहुत स्पष्ट नहीं है कि फ़ाइल को कैसे संपादित किया जाए /usr/bin/pip3...
एम। वुल्फ

-1

जैसा कि @ क्रिप्टोबाय ने कहा - आपने जो पाइप / पायथन संस्करण स्थापित किया है, उसकी जांच करें

 demon@UbuntuHP:~$ pip -V
 demon@UbuntuHP:~$ pip2 -V
 demon@UbuntuHP:~$ pip3 -V

और फिर अपने .local / lib / फ़ोल्डर में बिना आवश्यक पुस्तकालयों के लिए जाँच करें।

जब मैंने नए कुबंटू में और मेरे घर निर्देशिका में .local / lib / python2.7 / folder में माइग्रेट किया था, तब मैंने सेटिंग्स का बैकअप लिया। स्थापित किया गया अजगर 3.6। मैंने अभी पुराने फ़ोल्डर को हटा दिया है और अब सब कुछ बहुत अच्छा है!


-1

डेबियन पर आपको पहले उपयुक्त अद्यतन करने की आवश्यकता होगी ...।

sudo apt-get update -qq
sudo apt-get install python-pip -qq
sudo pip install pip --upgrade --quiet
sudo pip2 install virtualenv --quiet

यदि आप 'sudo apt-get update -qq' को छोड़ देते हैं, तो आपका पाइप भ्रष्ट हो जाएगा और 'मुख्य नहीं ढूँढ सकता' त्रुटि प्रदर्शित करेगा।


-1

यह त्रुटि एक अनुमति हो सकती है। तो, -H ध्वज के साथ कमांड निष्पादित करने का परीक्षण करें :

sudo -H pip3 install numpy

यह सवाल बहुत स्पष्ट रूप से कहता है कि ImportError एक परमिशन एरर नहीं है
एंथनी सॉटाइल

-1

किसी भी पाइप कमांड के निष्पादन से पहले निम्न कमांड का उपयोग करें

hash -d pip

यह काम करेगा


1
क्या आप शायद यह स्पष्ट कर सकते हैं कि यह किसी कृपालु टिप्पणियों को हटाने में कैसे मदद करेगा?
योगिनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.