পিপ ইন্সটলে “এক্সের জন্য বিল্ডিং হুইল” এর অর্থ কী?


114

এটি এখানে এসও-তে সত্যিই একটি জনপ্রিয় প্রশ্ন, তবে আমি যে সমস্ত উত্তর দেখেছি তার মধ্যে কোনওটিই এই ত্রুটিটির প্রকৃত অর্থ কী এবং কেন এটি ঘটে তা স্পষ্ট করে ব্যাখ্যা করে।

বিভ্রান্তির একটি উত্স হ'ল যখন (উদাহরণস্বরূপ) আপনি করেন 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

এখানে কি হচ্ছে?

(আমি বুঝতে চাই যে কীভাবে কোনও কিছু ব্যর্থ হতে পারে তবে তবুও ইনস্টল হয়ে যায় এবং আপনি কীভাবে এই প্যাকেজটিকে সঠিকভাবে কাজ করতে বিশ্বাস করতে পারেন?)

এখনও অবধি আমি যে আংশিক ব্যাখ্যা পেয়েছি তা হ'ল এটি


8
যখন pipপ্রয়োজনীয়তার জন্য কোনও চাকা খুঁজে পাওয়া যায় না, এটি উত্সটি ডাউনলোড করে এবং স্থানীয়ভাবে এটি থেকে একটি চাকা তৈরি করার চেষ্টা করে। সাফল্যের সাথে, pipহুইলটি ভবিষ্যতে পুনরায় ইনস্টল করার জন্য ক্যাশে সংরক্ষণ করা হয় । চাকা বিল্ড ব্যর্থতা উপর, pipসোর্স ডিস্ট (অনুরোধ python setup.py install) থেকে উত্তরাধিকার ইনস্টলেশনটিতে স্যুইচ করে ।

আপনার ক্ষেত্রে, আপনি wheelপ্যাকেজটি অনুপস্থিত রয়েছেন তাই pipসোর্স ডিস্ট থেকে চাকা তৈরি করতে অক্ষম। আপনি যদি সুস্পষ্টরূপে নিষ্ক্রিয় ভবন কায়দা করতে চাই, ব্যবহার --no-binaryপতাকা: pip install somepkg --no-binary=somepkg। বা ব্যবহার করুন pip install somepkg --no-binary=:all:তবে সাবধান হন যে এটি নির্ভরতা সহ ইনস্টলেশনের জন্য নির্বাচিত প্রতিটি প্যাকেজের চাকা অক্ষম করবে; কিছু প্যাকেজ pipইনস্টল করার প্রয়োজনের জন্য যদি কোনও উত্স উপলব্ধ না থাকে তবে ইনস্টলেশনটি ব্যর্থ হবে।
hoefling

4
@ হাফলিং: আপনার প্রথম মন্তব্যটিই সত্য কারণ এবং একটি উত্তর হতে পারে। দ্বিতীয়টিটি ভুল: --no-binaryকেবল উত্স বিতরণগুলি ডাউনলোড এবং ব্যবহার করতে পাইপকে নির্দেশ দেয় । স্থানীয় বাইনারি চাকা তৈরি করতে এটি রোধ করার পতাকাটি সত্যই --no-cache-dir
সার্জ বলিস্টা

@ হাফলিং আমার আছে wheels(0.32.2) যাতে সমস্যা হয় না। তবে সম্ভবত pycparserপ্যাকেজের কোনও চাকা ( *.whl) যুক্ত নেই? তবে আমি কীভাবে এই অগ্রাধিকারটি পরীক্ষা করতে পারি ?
not2qubit

4
আপনি পাইপআই.আর. সাইট / পাইপ.আইজি / প্রজেক্ট / পিসি পার্সার-এর সাথে পরামর্শ করতে পারেন এবং তারপরে ফাইলগুলি জিজ্ঞাসা করতে পারেন । তারপরে আপনি দেখতে পাচ্ছেন যে কেবলমাত্র একটি .tar.gzফাইল রয়েছে এবং এটি পিপিআই-তে উত্স বিতরণ (একটি চাকাটির একটি .whlএক্সটেনশান হবে)
সার্জ বালেস্টা

উত্তর:


94

(পাইপ রক্ষণাবেক্ষণকারী এখানে!)

প্যাকেজটি যদি চাকা না হয় তবে পাইপ তার (মাধ্যমে setup.py bdist_wheel) একটি চাকা তৈরি করার চেষ্টা করে । যদি এটি কোনও কারণে ব্যর্থ হয়, আপনি "পাইকপার্সারের জন্য ব্যর্থ বিল্ডিং হুইল" বার্তাটি পান এবং পাইপ সরাসরি (মাধ্যমে setup.py install) ইনস্টল করতে ফিরে আসে ।

আমাদের একবার চাকা পরে, পাইপটি সঠিকভাবে আনপ্যাক করে চাকাটি ইনস্টল করতে পারে। পিপ চাকাগুলির মাধ্যমে প্যাকেজগুলি যত তাড়াতাড়ি ইনস্টল করার চেষ্টা করে। এটি হুইল ব্যবহার করার বিভিন্ন সুবিধার কারণে রয়েছে (যেমন দ্রুত ইনস্টল, ক্যাশে-সক্ষম, আবার কোড প্রয়োগ না করা ইত্যাদি)।


এখানে আপনার ত্রুটি বার্তাটি wheelপ্যাকেজটি অনুপস্থিত থাকার কারণে , যার মধ্যে চাকাগুলি তৈরি করতে প্রয়োজনীয় যুক্তি রয়েছে setup.py bdist_wheel। ( pip install wheelএটি ঠিক করতে পারে।)


উপরেরটি হ'ল উত্তরাধিকার আচরণ যা বর্তমানে ডিফল্ট; আমরা ভবিষ্যতে কিছু সময় ডিফল্টরূপে পিইপি 517 এ স্যুইচ করব, এর জন্য আমাদের একটি মান-ভিত্তিক প্রক্রিয়াতে নিয়ে যাব। আমরা এর জন্য আলাদা বিল্ডসও রেখেছি, আপনি ডিফল্টরূপে সেই পরিবেশগুলিতে চাকা ইনস্টল করে রাখতে পারেন। :)


4
ওপি লেখার সময়, আমি ইতিমধ্যে wheelপ্যাকেজটি ইনস্টল করেছিলাম । এছাড়াও দয়া করে PEP517 এ একটি লিঙ্ক যুক্ত করুন।
not2qubit

আপনার কি সেটআপলসের পুরানো সংস্করণ বা চাকা ইনস্টল করা আছে? যদি তা না হয় তবে সেখানে ব্যর্থতার কারণ মনে হচ্ছে। যাইহোক, পিপের পিওভি থেকে, এটি চাকাটি তৈরি করতে ব্যর্থ হয়েছিল এবং এটি সাধারণত ইনস্টল করে।
প্রডিয়ুনসগ

হুইল জেনারেশন ( setup.py bdist_wheel) এড়িয়ে যাওয়ার জন্য কি কেবল কোনও উপায় আছে ( setup.py install)?
কে 3 --- আরএনসি

49

গতকাল, আমি একই ত্রুটি পেয়েছি: Failed building wheel for hddfancontrolযখন আমি দৌড়ে এসেছি pip3 install hddfancontrol। ফলাফল ছিল Failed to build hddfancontrol। কারণ ছিল error: invalid command 'bdist_wheel'এবং Running setup.py bdist_wheel for hddfancontrol ... error। নিম্নলিখিতটি চালিয়ে ত্রুটিটি স্থির করা হয়েছিল:

 pip3 install wheel

(এইখান থেকে এখানে ।)

অন্যথা, "চাকা" থেকে সরাসরি ডাউনলোড করা যাবে এখানে । ডাউনলোড করার পরে, এটি নিম্নলিখিত চালিয়ে ইনস্টল করা যেতে পারে:

pip3 install "/the/file_path/to/wheel-0.32.3-py2.py3-none-any.whl"

pip3 install wheel'পাইথন 3-মি ভেনভ'-এর জন্যও দুর্দান্ত কাজ করেছে, আজ পর্যন্ত আমি ভিনভে নতুন
মনোহর রেড্ডি পোরেডি

4
চাকা ইনস্টল করার পরেও এটি আমার পক্ষে কাজ করে না!
ভটসলে

33

যেহেতু, কেউ নিজেকে আলাদা করে বলে মনে হয় না। উপরে সমস্যার আমার নিজের সমাধান নিষ্ক্রিয় করতে নিশ্চিত করতে সবচেয়ে প্রায়ই হয় ক্যাশে ব্যবহার করে অনুলিপি: pip install <package> --no-cache-dir


4
যদি কেবল বার্তাটি থেকে মুক্তি পাওয়া আপনার লক্ষ্য হয় তবে এটি একটি সংশোধন হিসাবে গণ্য হতে পারে, অন্যথায় আমি এটিকে একটি কার্যকরী বলব।
নীলস ম্যাগনাস

@NilsMagnus এই না শুধু getting rid of the messageএটা এগিয়ে যেতে, এমনকি যখন ইনস্টলার মনে করেন যে এটি ইতিমধ্যেই, আপডেট করা হয়েছে পূর্ববর্তী এবং প্রায়ই ব্যর্থ আপডেট ক্যাশে ডিরেক্টরি ধারণকারী অবশিষ্টাংশ কারণে ইনস্টল যার ফলে হয়।
not2qubit

Said এই বলেছিল, আমি ভাবতে থাকি কেন এটি ডিফল্ট আচরণ নয়? আপনি আপডেট করার সময় কেশ অনুলিপি রাখতে চান? শুধু কোন ধারণা নেই।
not2qubit

4
এই প্রশ্নের গৃহীত উত্তর কীভাবে? এটি প্রশ্নের উত্তর দেয় না।
পাস্ক্যালআইভি

4
কারণ তিনি নিজেই এটি জিজ্ঞাসা করেছিলেন এবং উত্তরও দিয়েছেন। আমি মনে করি এইভাবে তিনি নিজের উত্তরটি মেনে নিতে পারেন আমি বিশ্বাস করি। অদ্ভুত লাগছে তবে এটি হতে পারে।
অমিত আমোলা

4

এই প্রশ্নটি প্যাকেজ মোতায়েনের দৃষ্টিকোণ থেকে সমাধান করা সহায়ক হতে পারে।

এখানে অনেক টিউটোরিয়াল রয়েছে যা পাইপিতে কীভাবে প্যাকেজ প্রকাশ করতে হয় তা ব্যাখ্যা করে। নীচে আমি ব্যবহার করেছি একটি দম্পতি;

মাঝারি
বাস্তব অজগর

আমার অভিজ্ঞতা হ'ল এই টিউটোরিয়ালগুলির বেশিরভাগটিতে আপনি কেবল উত্সের .tar ব্যবহার করেছেন, চাকা নয়। সুতরাং, এই টিউটোরিয়ালগুলি ব্যবহার করে তৈরি প্যাকেজ ইনস্টল করার সময়, আমি "চাকা তৈরিতে ব্যর্থ" ত্রুটি পেয়েছি।

পরে আমি পাইপিতে পাইথন সফ্টওয়্যার ফাউন্ডেশনের ডক্স পিএসএফ ডক্সের লিঙ্কটি পেয়েছি । আমি আবিষ্কার করেছি যে তাদের সেটআপ এবং বিল্ডিং প্রক্রিয়াটি কিছুটা আলাদা এবং প্রকৃতপক্ষে একটি হুইল ফাইল তৈরি করা অন্তর্ভুক্ত নয়।

সরকারীভাবে নথিভুক্ত পদ্ধতি ব্যবহার করার পরে, আমার প্যাকেজ ইনস্টল করার সময় আমি ত্রুটিটি আর পাইনি received

সুতরাং, ত্রুটিটি কেবল বিকাশকারী কীভাবে প্রকল্পটি প্যাকেজ করে এবং স্থাপন করেছে তা একটি বিষয় হতে পারে। পিআইপিআই কীভাবে ব্যবহার করবেন তা জেনে আমাদের মধ্যে কেউ জন্মগ্রহণ করেননি এবং যদি সেগুলি ভুল টিউটোরিয়ালের মাধ্যমে ঘটে থাকে - ভাল, আপনি শূন্যস্থান পূরণ করতে পারেন।

আমি নিশ্চিত যে এটি ত্রুটির একমাত্র কারণ নয়, তবে আমি বাজি রাখতে ইচ্ছুক যা এটির একটি প্রধান কারণ।


2

এটা চেষ্টা কর:

sudo apt-get install libpcap-dev libpq-dev

আমি এই দুটি ইনস্টল করার পরে এটি আমার পক্ষে কাজ করেছে।

আরও তথ্যের জন্য এখানে লিঙ্কটি দেখুন


0

উবুন্টু 18.04-তে, আমি এই ইস্যুতে ছুটে এসেছি কারণ aptপ্যাকেজের জন্য কমান্ডটি wheelঅন্তর্ভুক্ত নেই wheel। আমি মনে করি পাইপ wheelপাইথন প্যাকেজটি আমদানি করার চেষ্টা করে এবং যদি এটি সফল হয় তবে ধরে নেওয়া যায় যে wheelকমান্ডটিও উপলব্ধ। উবুন্টু সেই ধারণাটি ভেঙে দেয়।

অ্যাপটি পাইথন 3 কোড প্যাকেজের নাম দেওয়া হয়েছে python3-wheel। এটি স্বয়ংক্রিয়ভাবে ইনস্টল করা হয়েছে কারণ python3-pipএটির প্রস্তাব দেয়।

অ্যাপটি পাইথন 3 হুইল কমান্ড প্যাকেজের নাম দেওয়া হয়েছে python-wheel-common। এটি ইনস্টল করাও আমার জন্য "ব্যর্থ বিল্ডিং হুইল" ত্রুটিগুলি সমাধান করে।



0

আমি যখন পাইপ ইনস্টল করে জাঙ্গো-ইমেজকিট ইনস্টল করার চেষ্টা করেছি তখন আমি একই বার্তা পেয়েছি। সুতরাং আমি পাইপ ইনস্টল হুইল চালিয়েছি (আমার পাইথন ছিল ২.7) এবং তারপরে আমি পাইপ ইনস্টল করে জ্যাঙ্গো-ইমেজকিটটি পুনরায় পাঠিয়েছি এবং এটি কাজ করে। ধন্যবাদ


0

আমি যুক্ত করতে চাই যে আপনার সিস্টেমে যদি কেবল পাইথন 3 থাকে তবে আপনাকে পিপের পরিবর্তে পিপি 3 ব্যবহার শুরু করা উচিত।

আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে পাইপ 3 ইনস্টল করতে পারেন;

sudo apt install python3-pip -y

এর পরে আপনার প্রয়োজনীয় প্যাকেজটি ইনস্টল করার চেষ্টা করতে পারেন;

sudo pip3 install <package>

0

ত্রুটি :

সিস্টেম: aws ec2 উদাহরণ (টি 2 ছোট)

সমস্যা: ওপেনসিভি পাইথনটি ইনস্টল করার সময়

pip3 install opencv-python

  Problem with the CMake installation, aborting build. CMake executable is cmake
  
  ----------------------------------------
  Failed building wheel for opencv-python
  Running setup.py clean for opencv-python

আমার জন্য কি কাজ করেছে

pip3 install --upgrade pip setuptools wheel

এর পরেও আপনি পতিত ত্রুটি ত্রুটি পেয়ে থাকতে পারেন

    from .cv2 import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

Libgl ইনস্টল করা আমার জন্য ত্রুটিটি সমাধান করেছে।

sudo apt update
sudo apt install libgl1-mesa-glx

আশাকরি এটা সাহায্য করবে


0

ব্রোটলি ইনস্টল করার সময় আমারও একই সমস্যা ছিল

ত্রুটি

Failed building wheel for Brotli

আমি এখান.whl থেকে ফাইলটি ডাউনলোড করে নীচের কমান্ডটি ব্যবহার করে এটি ইনস্টল করে সমাধান করেছি

C:\Users\{user_name}\Downloads>pip install Brotli-1.0.9-cp39-cp39-win_amd64.whl

-2

এটি আপনাকে সাহায্য করতে পারে! ....

পাইপপারসার আনইনস্টল করা:

pip uninstall pycparser

পাইপপারসার পুনরায় ইনস্টল করুন:

pip install pycparser

টার্মকালার ইনস্টল করার সময় আমি একই ত্রুটি পেয়েছি এবং এটি পুনরায় ইনস্টল করে আমি এটি ঠিক করেছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.