यह एसओ पर यहां वास्तव में लोकप्रिय प्रश्न है, लेकिन मैंने जिन कई उत्तरों को देखा है, उनमें से कोई भी स्पष्ट रूप से नहीं बताता है कि यह त्रुटि वास्तव में क्या है, और यह क्यों होता है।
भ्रम का एक स्रोत, यह है कि जब (उदाहरण के लिए) आप करते हैं pip install pycparser
, तो आपको सबसे पहले त्रुटि मिलती है:
Failed building wheel for pycparser
जो तब संदेश द्वारा पीछा किया जाता है कि पैकेज था:
Successfully installed pycparser-2.19
।
# pip3 install pycparser
Collecting pycparser
Using cached https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz
Building wheels for collected packages: pycparser
Running setup.py bdist_wheel for pycparser ... error
Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-g_v28hpp/pycparser/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-__w_f6p0 --python-tag cp36:
Traceback (most recent call last):
File "<string>", line 1, in <module>
...
File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2349, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
ModuleNotFoundError: No module named 'wheel.bdist_wheel'
----------------------------------------
Failed building wheel for pycparser
Running setup.py clean for pycparser
Failed to build pycparser
Installing collected packages: pycparser
Running setup.py install for pycparser ... done
Successfully installed pycparser-2.19
यहाँ क्या हो रहा है?
(मैं यह समझना चाहूंगा कि कुछ कैसे विफल हो सकता है लेकिन फिर भी स्थापित हो सकता है और क्या आप इस पैकेज के कामकाज पर सही तरीके से भरोसा कर सकते हैं?)
अब तक मुझे मिली सबसे अच्छी आंशिक व्याख्या यही है ।
pip
आवश्यकता के लिए एक पहिया नहीं मिलता है, तो यह स्रोत को डाउनलोड करता है और स्थानीय स्तर पर पहिया बनाने की कोशिश करता है। सफलता पर, पहियाpip
भविष्य के पुनर्स्थापना के लिए कैश में संग्रहीत किया जाता है । ऑन व्हील बिल्ड विफलता,pip
स्रोत से लीगेसी इंस्टॉलेशन पर स्विच करना डिस्टर्बिंग (इनवोकिंगpython setup.py install
)।