Đây là một câu hỏi thực sự phổ biến ở đây tại SO, nhưng không có câu trả lời nào trong số nhiều câu trả lời tôi đã xem, giải thích rõ ràng lỗi này thực sự có nghĩa là gì và tại sao nó xảy ra.
Một nguồn gây nhầm lẫn, đó là khi (ví dụ) bạn làm như vậy pip install pycparser
, trước tiên bạn gặp lỗi:
Failed building wheel for pycparser
sau đó được theo sau bởi thông báo rằng gói đó là:
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
Chuyện gì đang xảy ra ở đây?
(Tôi muốn hiểu làm thế nào một cái gì đó có thể bị lỗi nhưng vẫn được cài đặt và liệu bạn có thể tin tưởng gói này hoạt động chính xác không?)
Cho đến nay lời giải thích một phần tốt nhất mà tôi đã tìm thấy là điều này .
pip
không tìm thấy bánh xe cho yêu cầu, nó sẽ tải xuống bản phân phối nguồn và cố gắng tạo một bánh xe từ nó cục bộ. thành công, bánh xe được lưu trữ trongpip
bộ nhớ cache của để cài đặt lại trong tương lai. khi lỗi xây dựng bánh xe, hãypip
chuyển sang cài đặt kế thừa từ bản phân phối nguồn (đang gọipython setup.py install
).