पायथन 3.6 आयात त्रुटि: नाम 'मुख्य' लिनक्स RHEL6 आयात नहीं कर सकता - पायथन, लिनक्स, अमेज़ॅन-वेब-सेवाएं, पीआईपी, rhel6

मेरा अंतिम लक्ष्य डाउनलोड करना और स्थापित करना है http://docs.aws.amazon.com/cli/latest/userguide/awscli-install-linux.html

मेरे लक्ष्य को पूरा करने के लिए अजगर और पाइप की आवश्यकता होती है।

Yum isn के माध्यम से अजगर स्थापित करना "मेरे लिए काम नहीं कर रहा है, इसलिए मैंने python3 को मैन्युअल रूप से डाउनलोड और इंस्टॉल किया है:

wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
tar xf Python-3.6.1.tar.xz
cd Python-3.6.1.tar.xz
./configure
make
sudo make altinstall

जब मैं करता हूं

pip3.6 --version

मैंने इसे प्राप्त किया:

Traceback (most recent call last):
File "/usr/local/bin/pip3.6", line 7, in <module>
from pip import main
ImportError: cannot import name "main"

वातावरण: आरएचईएल 6.6 Ssh के माध्यम से पहुँचा

क्या हो रहा है? मेरे लिनक्स बॉक्स पर सही ढंग से पाइप और पायथन 3.6 कैसे स्थापित करें?

संपादित करें:

यम के माध्यम से स्थापित करने की कोशिश करते समय यह विफल हो जाता है इसलिए मैं यम का उपयोग करने से बचने की कोशिश कर रहा हूं:

[[email protected] Python-3.6.1]$ sudo yum -y install python-pip

[sudo] password for asemeani:
Loaded plugins: security
Setting up Install Process
No package python-pip available.
Error: Nothing to do

एक और संपादन:

Sys आयात करने के बाद और फिर sys.path कहा जाता है जो मुझे मिलता है:

[[email protected] Python-3.6.1]$ python3.6
Python 3.6.1 (default, Apr 28 2017, 11:03:27)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
["", "/usr/local/lib/python36.zip", "/usr/local/lib/python3.6", "/usr/local/lib/python3.6/lib-dynload", "/usr/local/lib/python3.6/site-packages"]
>>> quit()
[[email protected] Python-3.6.1]$ ls -l /usr/local/lib/python3.6/site-packages
total 32
-rw-------  1 root root  126 Apr 27 23:45 easy_install.py
drwx------ 11 root root 4096 Apr 27 23:45 pip
drwx------  2 root root 4096 Apr 27 23:45 pip-9.0.1.dist-info
drwx------  5 root root 4096 Apr 27 23:45 pkg_resources
drwx------  2 root root 4096 Apr 27 23:45 __pycache__
-rw-r--r--  1 root root  119 Apr 27 23:45 README.txt
drwx------  5 root root 4096 Apr 27 23:45 setuptools
drwx------  2 root root 4096 Apr 27 23:45 setuptools-28.8.0.dist-info

उत्तर:

उत्तर № 1 के लिए 38

आपको pip3 फ़ाइल को संपादित करने की आवश्यकता है जैसे (आपका रास्ता अलग हो सकता है):

nano /Library/Frameworks/Python.framework/Versions/3.6/bin/pip3

और आयात मुख्य लाइन को बदल दें ताकि यह कहे:

from pip._internal import main

इस बदलाव के बाद, मेरे पाइप 3 ने काम करना शुरू कर दिया।

मुझे यह टिप और इस थ्रेड से अधिक जानकारी मिली: https://github.com/pypa/pip/issues/5240


जवाब के लिए 8 № 2

डॉन "t इनवॉइस पिप / पिप्प 3, जो अलग-अलग उपयोगकर्ता के लिए अलग-अलग स्थानों पर शॉर्टकट हैं और जब आप पाइप (चेक" कौन सी पाइप "और" सूडो जो पाइप ") को अपग्रेड करते हैं, तो वे अच्छी तरह से बनाए नहीं रहते हैं।

 $ sudo python -m pip install xxx  #for python2
$ sudo python3 -m pip install xxx  #for python3

ये कमांड शॉर्टकट नहीं लेते हैं और सीधे पाइप मॉड्यूल को लागू करते हैं, जिसे बहुत अच्छी तरह से बनाए रखा जाता है (विंडोज पर भी काम करता है)


जवाब के लिए 6 № 3

sudo chmod -R a+rx /usr/local/lib/python3.6/site-packages

आप अपने में समस्या को देख सकते हैं ls -l /usr/local/lib/python3.6/site-packages आउटपुट जो आपकी पाइप निर्देशिका केवल स्वामी द्वारा पठनीय है, जो रूट है।


जवाब के लिए 6 № 4

मेरा OS लिनक्स मिंट 18 है

sudo nano /usr/bin/pip3

परिवर्तन

from pip import main

सेवा मेरे

from pip._internal import main

जवाब के लिए 3 № 5

जब तक यह हल नहीं हो जाता है तब तक इस मुद्दे के चारों ओर निम्नलिखित तरीके से प्रयास करें

sudo python -m pip --version
>> pip 10.0.1 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)
sudo python -m pip install numpy --upgrade
>> Requirement already up-to-date: numpy in /usr/local/lib/python2.7/site-packages (1.14.2)

उत्तर के लिए 1 № 6

मैं इसका उत्तर बिल्कुल नहीं जानता, लेकिन: यह त्रुटि बताती है कि स्क्रिप्ट मिल सकती है कुछ पैकेज कहा जाता है pip, लेकिन सही नहीं है। संभवतः, पाइप का एक पुराना संस्करण, पीछे से वे बनाने से पहले ए main विधि (आप जाँच कर सकते हैं pip.__version__ अजगर के खोल से)।

मैं शर्त लगाने को तैयार हूं कि आपके पास अभी भी एक और है,अजगर के पुराने संस्करण को स्थापित किया गया है जिसका पाइप का अपना संस्करण है। किसी कारण से आपका pythonpath py3.6 के साथ जाने वाले के बजाय उस एक को लोड कर रहा है।

देखने की कुछ संभावनाएँ:

  • मैं redhat के बारे में कुछ भी नहीं जानता, लेकिन क्या "डिफ़ॉल्ट अजगर" का उपयोग करने के लिए कुछ लाल-विशिष्ट तरीका है?

  • क्या पाइप स्क्रिप्ट के शीर्ष पर शेबंग लाइन कुछ इस तरह है #!/usr/bin/env python के बजाय #!/usr/bin/python3.6 जैसा होना चाहिए?

  • क्या आपके शेल के पैट को संशोधित करना संभव है ताकि डाउनलोड किए गए अजगर का उपयोग किया जाए?

  • क्या अपने PYTHONPATH को बदलना संभव है (मुझे लगता है कि यह डिफ़ॉल्ट मान में जुड़ जाता है sys.path अजगर के अंदर; इसे देखो) ताकि यह पुराने पाइप के बजाय नई पाइप को लोड करे?


उत्तर के लिए 1 № 7

एक करो cd /usr/bin

फिर sudo nano pip ताकि पाइप फ़ाइल को संपादित किया जा सके

परिवर्तन from pip install main सेवा मेरे from pip._internal install main

इससे समस्या सुलझ जाएगी


जवाब के लिए 0 № 8

लगता है कि पाइप लिपि इस तथ्य को याद कर रही थी कि एक मशीन पर अजगर के 1 से अधिक संस्करण निवास कर सकते हैं। इसलिए मैंने निम्नलिखित पंक्तियों को जोड़ा:

PY2 = sys.version_info[0] == 2
PY3 = sys.version_info[0] == 3

किसी कारण से यह गायब था। वैसे भी यह मेरे लिए काम किया। दोस्तों, आपके सहयोग के लिए धन्यवाद।


जवाब के लिए 0 № 9

मेरा OS मैक सिएरा था और मुझे निम्नलिखित लाइन बदलनी थी

from pip import main

में

from pip._internal import main


संबंधित सवाल
सबसे लोकप्रिय