ImportError: विंडोज 7 32 में पिप - वर्सन कमांड चलाने के दौरान मुख्य नाम आयात नहीं किया जा सकता है


145

मैंने नवीनतम पायथन (2.7.9) स्थापित किया है, जो कि विंडोज़ 32-बिट के लिए पाइप और सेटपूल के साथ बंडल है। मैंने पाइप को फिर से स्थापित करने की कोशिश की है लेकिन समस्या बनी हुई है।

pip --versionप्रशासक cmd में चलने के बाद यहाँ त्रुटि है :

Traceback (most recent call last):
 File "D:\Python\lib\runpy.py", line 162, in _run_module_as_main
  "__main__", fname, loader, pkg_name)
 File "D:\Python\lib\runpy.py", line 72, in _run_code 
  exec code in run_globals
 File "D:\Python\Scripts\pip.exe\__main__.py", line 5, in <module>
ImportError: cannot import name main

1
यह फाइल की अनुमति से संबंधित हो सकता है कि अजगर 3.4 के साथ एक मुद्दा था जिसे यहां हल किया गया था, यह एक जांच के लायक था।
कोबी के

मैंने icacls कमांड का उपयोग करके वर्कअराउंड किया था, लेकिन त्रुटि बनी रहती है।
वूटनेस

2
"easy_install -U pip" उत्तर stackoverflow.com/questions/28031277/… unpack-url
J1MF0X

जवाबों:


172

भले ही मूल प्रश्न 2015 से लगता है, यह 'बग' उपयोगकर्ताओं को स्थापित करने को प्रभावित pip-10.0.0करता है।

वर्कअराउंड को संशोधित नहीं करना है pip, हालांकि पाइप को कॉल करने के तरीके को बदलना है। इसके बजाय खुद पायथन के माध्यम से /usr/bin/pipकॉल pipकरने के लिए। उदाहरण के लिए, नीचे के बजाय:

pip install <package>

यदि पायथन संस्करण 2 से (या डिफ़ॉल्ट पायथन बाइनरी कहा जाता है python) करते हैं:

python -m pip install <package>

या अगर पायथन संस्करण 3 से:

python3 -m pip install <package> 

हाँ, मुझे याद नहीं है कि मैंने इसे ठीक करने के लिए क्या किया था लेकिन मैं इसे दूसरों के लिए खुला रख रहा हूं।
Woootiness

जब मैंने दी गई कमांड का उपयोग किया, तो मुझे एक अनुमति त्रुटि मिली (कि मुझे भी कैटलिनपोपेसु के उत्तर के अनुसार पाइप को बदलने के बाद मिला)। हालांकि, उपयोगकर्ता के दायरे के लिए पैकेज डाउनलोड करने के लिए (ताकि आपको प्रशासन के अधिकारों की आवश्यकता न हो) उपयोग करें: python3 -m pip install <package> --user (python3 के लिए काम करता है, लेकिन python2 के लिए भी काम करना चाहिए, हालांकि इसका परीक्षण नहीं किया गया है
randmin

एक मैक पर मेरी मदद की।
charles

बेहतर जवाब। स्रोत कोड को संशोधित करना एक दलदल है।
ozgur

यह जाने के लिए एक बहुत अच्छा तरीका है। यह वास्तव में आपको सही संस्करण का उपयोग करने का आश्वासन देना आसान बनाता है:python2 -m pip install $package
JamesTheAwesomeDude

257

बग पाइप 10.0.0 में पाया जाता है।

लिनक्स में आपको फ़ाइल को संशोधित करने की आवश्यकता है: / usr / bin / pip से:

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

इसके लिए:

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

1
लगता है यही समाधान है। मैंने यह कोशिश की और अब तक कोई समस्या नहीं है।
खू

2
मैं पाइप 10.0.1 का उपयोग कर रहा हूं और बग अभी भी है। आपने सहायता की। धन्यवाद! क्या आपने इस बग और समाधान की रिपोर्ट डेवलपर्स को दी है?
एलेक्सी सुबाक

7
हालांकि यह समाधान काम करता है, कृपया pipस्वयं को संशोधित करने से बचना चाहिए । pipइसके बजाय अजगर से कॉल करने के लिए नीचे एक क्लीनर समाधान देखें ।
वान बख्तियार

1
"पाइप 10.0.1" पर मदद नहीं करता है। pip --version pip 10.0.1 from /home/x/.local/lib/python2.7/site-packages/pip (python 2.7) उपयोग: sudo pip install tensorflow आउटपुट:Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main
user_x

3
@creepy_driver, मैन्युअल रूप से पर्यावरण के अनुरूप स्थापित पैकेज को संशोधित करने की अनुशंसा नहीं की जाती है क्योंकि अगली बार जब आप किसी अन्य संस्करण में अपडेट करते हैं, तो 10.0.3 आप उसी मुद्दे का सामना करने की संभावना रखते हैं। pipस्थापित पायथन के माध्यम से चलने का वर्कपॉइंट उपयुक्त वातावरण का सही उपयोग करने के लिए पाइप को इंगित करेगा।
वान बख्तियार

60

Ubuntu Server 16 पर, मुझे python27 के साथ भी यही समस्या है। इसे इस्तेमाल करे:

परिवर्तन

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

सेवा

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

1
Ubuntu 16.04 पर काम किया
समीरा कुमारसिंह

यह एक अच्छा विचार नहीं है। जैसा कि @RichardElkins द्वारा एक अन्य उत्तर में उल्लेख किया गया है: "फोल्क्स को अपना समय बर्बाद नहीं करना चाहिए संस्थापन के बाद संस्थापित फाइलों को संस्थापन के बाद संशोधित नहीं करना चाहिए"
juergi

20

विंडोज 10 पर, मैंने पाइप को डाउनग्रेड करने के लिए निम्न कमांड का उपयोग किया:

python -m pip uninstall pip
python -m pip install pip==9.0.3

यह लिनक्स और मैक पर भी काम करना चाहिए।


1
यह python होना चाहिए -m पाइप स्थापित पाइप == 9.0.3
एलियास

@ डाकिया ओह, मुझे इसका एहसास नहीं था। मुझे बताने के लिए धन्यवाद!
किआ

1
python easy_install.py pip==9.0.3क्योंकि पहली लाइन के बाद मुझे पाइप नहीं मिला था।
सुजैन

3
लिनक्स और मैक पर भी काम करता है। यह एक काम के आसपास है जब तक पाइप / pip3 10 तय नहीं हो जाता है। फोल्क्स को अपना समय बर्बाद नहीं करना चाहिए संस्थापित फाइलों को संस्थापन के बाद संशोधित करने का इरादा नहीं है ..
रिचर्ड एलकिंस

मैं उन्नयन के बाद पथ मुद्दों था, मैं इसे काम करने के लिए निम्नलिखित किया था। sudo python -m pip अनइंस्टॉल pip && sudo apt install python-pip --reinstall
webjockey

10

मैं एक ही समस्या थी, लेकिन स्थापना रद्द करें और उपयुक्त और पाइप के साथ पुनः स्थापित मेरे लिए काम नहीं किया।

मैंने एक और समाधान देखा जो पिप 3 पथ को पुनर्प्राप्त करने का एक आसान तरीका प्रस्तुत करता है:

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

1
मैं अजगर 2.7 था, तो मैं मैच अजगर 2.7 करने के लिए आदेश को बदलना पड़ा sudo अजगर -m पिप स्थापना रद्द करें पिप && sudo उपयुक्त अजगर-पिप --reinstall स्थापित
webjockey

पूरी तरह से ubuntu पर काम करता है, लेकिन मुझे लगता है कि यह विंडोज़ पर काम नहीं करेगा
zaki benz

8

मैं पाइप का उपयोग कर पुनः स्थापित करके समस्या को ठीक किया get-pip.py

  1. आधिकारिक लिंक से गेट-पाइप डाउनलोड करें: https://pip.pypa.io/en/stable/installing/#upifting-pip
  2. कमांड का उपयोग करके इसे चलाएं python get-pip.py:।

और पाइप तय हो गया है और पूरी तरह से काम करता है।


1
अजगर get-pip-pyको अजगर में बदलेंget-pip.py
YourFriend

1
पूरी तरह से काम किया! धन्यवाद।
शाम्बो

मेरे लिए भी काम किया। साभार
अभिषेक किशोर

2

MacOS पर यदि आपने होमब्रे के माध्यम से अजगर को स्थापित किया है, तो लाइन को अंदर बदलें /usr/local/opt/python/libexec/bin/pip

से

from pip.internal import main

सेवा

from pip._internal import main

या इस एक लाइनर का उपयोग करें: sed -i '' "s/from pip import main/from pip._internal import main/" /usr/local/opt/python/libexec/bin/pip

स्पष्टीकरण:

समस्या पाइप संस्करण 10 में चल रहे आंतरिक नेमस्पेस के तहत main._internalऔर होमब्रे द्वारा रखी गई बिन स्क्रिप्ट अभी भी पुरानी जगह (जहां यह संस्करण 9 में हुआ करती थी) में बदलाव के कारण होती है । मुद्दा और कुछ चर्चा https://github.com/pypa/pip/issues/5240


1

यदि आपके पास पाइप करने के लिए हार्डलिंक है PATH(यानी यदि आपके पास कई अजगर संस्करण स्थापित हैं) और फिर आप पाइप को अपग्रेड करते हैं, तो आप इस त्रुटि का सामना भी कर सकते हैं।

समाधान फिर से हार्डलिंक बनाने में शामिल है। या इससे भी बेहतर, हार्डलिंक का उपयोग बंद करें और सॉफ्टलिंक का उपयोग करें।


1
इसे कैसे ठीक करें?
user_x

1

विंडोज 10 पर, मुझे यही समस्या थी। PIP 19पहले से ही मेरे सिस्टम में स्थापित था, लेकिन दिखाई नहीं दे रहा था। त्रुटि थी No Module Found

python -m pip uninstall pip
python -m pip install pip==9.0.3

पदावनति pip9.0.3 करने के लिए मेरे लिए ठीक काम किया।



0

यह ubuntu 16.04 पर काम करता है। चरण 1:

 sudo gedit /home/user_name/.local/bin/pip

सामग्री के साथ एक फ़ाइल खुलती है:

#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

नीचे दिखाई mainदेने __main__पर इसे बदल दें :

#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from pip import __main__

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(__main__._main())

फ़ाइल सहेजें और इसे बंद करें। और आप कर रहे हैं!


0

इसे इस्तेमाल करे

#!/usr/bin/python
# 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.i
try:
    from pip import main
except ImportError:
    from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

0

एक सरल समाधान जो उबंटू के साथ काम करता है, लेकिन खिड़कियों पर भी समस्या को ठीक कर सकता है:

बस कॉल करना

pip install --upgrade pip

0

यह ubuntu 18.04 में मेरी समस्या को हल किया जब python3.6 का उपयोग करने की कोशिश कर रहा था:

rm -rf ~/.local/lib/python3.6

आप परीक्षण के लिए फ़ोल्डर को हटाने के बजाय mv का उपयोग करके किसी अन्य स्थान पर ले जा सकते हैं:

mv ~/.local/lib/python3.6 ./python3.6_old

0

अपने टर्मिनल लाइन को खोलें।

hash -d pip

हाय कार्लोस, स्टैक ओवरफ्लो में आपका स्वागत है। इस समस्या का सामना कर रहे अन्य उपयोगकर्ताओं की सहायता के लिए, क्या आप इस बात को स्पष्ट करने के लिए जवाब जोड़ सकते हैं कि यह कमांड क्या करता है और यह समस्या को कैसे ठीक करता है।
साइबरजैकब

0

हमारे मामले में, 2020 में पायथन 3 का उपयोग करते हुए, इस समस्या का समाधान पायथन इंस्टॉलेशन को cloud-initस्टार्टअप स्क्रिप्ट में स्थानांतरित करना था, जिसने वीएम को तत्काल बदल दिया था।

हम उसी त्रुटि का सामना कर रहे थे, जब हम स्क्रिप्ट का उपयोग करके पायथन को स्थापित करने की कोशिश कर रहे थे, जिसे उपयोगकर्ताओं द्वारा वीएम के जीवन चक्र में बाद में बुलाया गया था, लेकिन उसी पायथन इंस्टॉलेशन कोड को cloud-initस्क्रिप्ट में ले जाने से इस समस्या को समाप्त कर दिया गया।

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