"ত্রুটি: বিকল্পটি - সংস্করণ-বহিরাগত-পরিচালিত স্বীকৃত নয়" কী নির্দেশ করে?


102

আমি হঠাৎ এনকাউন্টার ত্রুটি শুরু করেছে বলে মনে হচ্ছে error: option --single-version-externally-managed not recognizedযখন pip installvarions প্যাকেজ ing (তত্সহ PyObjCএবং astropy)। আমি এই ত্রুটিটি আগে কখনও দেখিনি, তবে এটি এখন ট্র্যাভিস-সিআই বিল্ডগুলিতেও প্রদর্শিত হচ্ছে যার জন্য কিছুই পরিবর্তিত হয়নি।

এই ত্রুটিটি কি পুরানো বিতরণের ইঙ্গিত দেয়? বা কিছু ভুলভাবে নির্দিষ্ট বিকল্পের মধ্যে setup.py? না পুরোপুরি অন্য কিছু?

উত্তর:


84

নতুন আপডেট:

এর সর্বশেষতম সংস্করণ ইনস্টল করুন setuptools। আপনি যদি এখনও ত্রুটি পান তবে wheelপাশাপাশি ইনস্টল করুন ।

pip install -U setuptools
pip install -U wheel

আসল উত্তর / আরও বিশদ:

--single-version-externally-managed পাইথন প্যাকেজগুলির জন্য পাইথন প্যাকেজ তৈরির জন্য সেটআপলগুলি মডিউলটিকে নির্দেশ দেওয়ার জন্য একটি বিকল্প যা ইউম বা অ্যাপের মতো হোস্টের প্যাকেজ ম্যানেজার দ্বারা সহজেই পরিচালনা করা যায়।

আপনি যদি এই বার্তাটি দেখতে পান তবে আপনার কাছে সেটআপলগুলি বা পাইথনের একটি পুরানো সংস্করণ থাকতে পারে। বিতরণ ব্যবহার করার চেষ্টা করুন যা সেটআপলগুলির একটি নতুন সংস্করণ এবং পিছনের দিকে সামঞ্জস্যপূর্ণ। এই প্যাকেজগুলি আশা করতে পারে যে এটি ইতিমধ্যে আপনার কাছে রয়েছে।

https://pypi.python.org/pypi/distribute

সম্পাদনা: এই মুহুর্তে, বিতরণটি মূল setuptoolsপ্রকল্পে একীভূত করা হয়েছে । এর সর্বশেষতম সংস্করণটি ইনস্টল করুন setuptools। @ উইনেমো সূচিত হিসাবে, আপনি --eggপরিবর্তে বিকল্পটি ব্যবহার করতে ইচ্ছুক হতে পারেন , কারণ আপনি যেখানে ডিস্ট্রিবিউশনের জন্য কোনও সিস্টেম প্যাকেজ তৈরি করতে চান না সেখানে ম্যানুয়াল ইনস্টলেশন করছেন তাদের পক্ষে এটি আরও উপযুক্ত।


1
আপনি যে সংস্করণটি দেখিয়েছেন তা যুক্ত করতে পারেন? আমি সেটআপলুলগুলি 0.6 ব্যবহার করছি এবং পাইপ আরও নতুন সংস্করণ সম্পর্কে জানে না। distributeঠিক আছে, তবে আমি এটি আমদানি করতে পারি না ...
কেফলাভিচ

আপনি না import distribute। বিতরণ একটি ড্রপ-ইন প্রতিস্থাপন এবং একই মডিউলটির নাম। import setuptoolsপাশাপাশি এটি প্রয়োজন।
কেলকেটেক

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

17
এটি যুক্ত করা উচিত: আর বিতরণ ব্যবহার করবেন না। ডিস্ট্রিবিউটটিকে সেটআপলজ প্রকল্পে আবার একত্রিত করা হয়েছে, সুতরাং এখন তাদের সবগুলিকে setuptoolsশাসনের জন্য মাত্র একটি রয়েছে ।
ইগুয়ানানাট

1
@ জোহনটেক্স, এই উত্তরটি এক বছর আগে তৈরি করা হয়েছিল, যখন বিতরণ এবং সেটআপলগুলি এখনও একত্রীকরণ হয়নি (বা যদি তারা থাকত তবে আমি এটি সম্পর্কে শুনিনি)। আমি এখন এটি আপডেট করেছি।
কেলকেটেক

136

যোগ --eggবিকল্প

pip install --egg SCons

আমি pipসংস্করণ 1.4.1 ব্যবহার করি


10
এটাই ছিল একমাত্র সমাধান যা আসলে সহায়তা করেছিল। সাম্প্রতিক পাইপ এবং সেটআপলগুলি ইতিমধ্যে ইনস্টল করা হয়েছে, তবুও আমি এই ত্রুটিটি টুপি করছি।
মাইকেল

পাইেনভের সাথে আমার এই সমস্যা ছিল এবং এটি এটি স্থির করে।
গ্লুকন

13
কেউ এই বিকল্পটির অর্থ কী এবং কেন এই কাজ করে তা বিশদে ব্যাখ্যা করতে পারেন?
কাওয়িং-চিউ

4
এটি আমার পক্ষে কাজ করার সময়, আমি ত্রুটিটি পেয়েছিলাম: "অবচয়: --egg অবচিত করা হয়েছে এবং ভবিষ্যতে সরানো হবে This ইনস্টলেশন প্রক্রিয়া। "
নাটারোজোজ

2
no such option: --eggপিপ 18.1
gdw2

45

ইনস্টল wheelকরা সাম্প্রতিক দিয়ে এই সমস্যার সমাধান করেছে pip(আমি 8.1.2 ব্যবহার করেছি):

pip install wheel

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

@ স্প্যারোউটের এই প্লাস উত্তরটি আমার সমস্যাটি স্থির করেছে
ডেভিড পক্সন

7

এটির মতো সেটআপলগুলি আপগ্রেড করার চেষ্টা করুন:

pip install --upgrade setuptools


5

আমার এই সমস্যা ছিল দেখা গেল এটি আমার পাইপ ক্যাশে ফাইল অনুমতি নিয়ে সমস্যা ছিল।

আপনি যদি আপনার পাইপের আউটপুটটির একেবারে শুরুতে কোনও বার্তা দেখতে পান তবে

The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

আপনারও একই সমস্যা হতে পারে। আপনি আপনার পাইপ ক্যাশে সঠিক ফাইল অনুমতি আছে কিনা তা নিশ্চিত করে সমাধান করতে পারেন (যেমন কিছু chown -R $(whoami) /home/ubuntu/.cache/pip) বা আপনি যদি ইউনিক্সে থাকেন তবে আপনি XDG_CACHE_HOMEনিজের কিছু ফোল্ডারে এনভিভ ভার্সায় পাইপ ক্যাশে অবস্থান নির্ধারণ করতে পারেন ।


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

1

আমি উপরের সমাধানগুলি চেষ্টা করেছিলাম। তবে আমি না করা পর্যন্ত আমি কেবল সমস্যার সমাধান করতে পারি:

sudo pip3 install -U pip (পাইথন 3 এর জন্য)


0

যখন আমি একটি পাইথন প্যাকেজ আপগ্রেড করার চেষ্টা করি তখন আমার ম্যাকবুকটিতেও এই সমস্যাটি হয়। আমি ওএস এক্সে পাইপ সংস্করণটি পরীক্ষা করি, এটি অনেক পুরানো: 1.1। আমি পিপিকে 1.5.6 তে আপগ্রেড করতে ফলো সিএমডি ব্যবহার করি

easy_install -U pip

তারপরে এই ত্রুটিটি স্থির হয়।

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