"আপনার পাইথন 3 ইনস্টলটি দূষিত হয়েছে"


13

আমি উবুন্টু 16.04.5 এলটিএস থেকে 18.04 এ আপগ্রেড করতে চাই, তাই চলেছে sudo do-release-upgrade। ডাউনলোড এবং এক্সট্র্যাক্ট করার পরে bionic.tar.gzআমি পেয়েছি:

Can not upgrade 

Your python3 install is corrupted. Please fix the '/usr/bin/python3'
symlink.

আমি দেখেছিলাম কীভাবে "পাইথন ইনস্টলেশনটি দূষিত হয়"? এবং তাই আমি sudo ln -sf /usr/bin/python3.6 /usr/bin/python3ভাবছিলাম যে এটি একই রকম সমস্যা হবে। তবে এটি কার্যকর হয়নি (এখনও একই ত্রুটি বার্তা)।

আমার কয়েকটি অজগর সংস্করণ রয়েছে:

$ ls /usr/lib | grep python
python2.7
python3
python3.5
python3.6

$ update-alternatives --display python3
python3 - auto mode
  link best version is /usr/bin/python3.6
  link currently points to /usr/bin/python3.6
  link python3 is /usr/bin/python3
/usr/bin/python3.5 - priority 1
/usr/bin/python3.6 - priority 2

আমি কীভাবে ঠিক করব python3?


1
এবং পুনরায় প্রতিষ্ঠার বিষয়ে কীভাবে (গৃহীত উত্তরে উল্লিখিত)?
কুলফাই

উত্তর:


16

16.04 এর জন্য আপনাকে ডিফল্ট পাইথন 3 সংস্করণ ব্যবহার করতে হবে। এটি 3.5 , 3.6 নয়। সুতরাং চালান:

sudo ln -sf /usr/bin/python3.5 /usr/bin/python3

যদি এটি কাজ না করে, python3প্যাকেজটি পুনরায় ইনস্টল করার চেষ্টা করুন ।

sudo apt-get install --reinstall python3

যাইহোক, update-alternatives --display python3আপনাকে দেওয়া উচিত update-alternatives: error: no alternatives for python3। পাইথনের বিভিন্ন সংস্করণ উবুন্টুতে বিকল্প নয়।


32

আমি কেবল পপ! _OS 18.04-এ 18.10-এ উন্নীত করার চেষ্টা করে এই সমস্যায় পড়েছি, এবং দেখা যাচ্ছে যে সমস্যাটি সিলেমিংকে আছে /usr/bin/pythonএবং এর জন্য নয় /usr/bin/python3। আমি (না ) এর /usr/bin/python3.6বিকল্প হিসাবে কনফিগার করেছি এবং যখন আমি এটি পরিবর্তন করেছি, তখন আমি প্রত্যাশা অনুযায়ী চালাতে পারি ।pythonpython3do-release-upgrade

আমি ত্রুটি বার্তাটি নির্দেশিত pythonএবং না ইচ্ছুক python3


আগে, সমস্যা সহ:

$ update-alternatives --display python
python - manual mode
  link best version is /usr/bin/python3.6
  link currently points to /usr/bin/python2.7
  link python is /usr/bin/python
/usr/bin/python2.7 - priority 1
/usr/bin/python3.6 - priority 2 

আমি এটি এইভাবে ঠিক করেছি:

$ sudo update-alternatives --remove-all python
$ sudo ln -sf /usr/bin/python2.7 /usr/bin/python

আরো দেখুন এই মন্তব্যটি নিচে যা আরও ভালো সমাধান উন্নত ব্যাখ্যা করেছেন যে কি হচ্ছে এবং কিভাবে এটা ঠিক করার বর্ণনা।


1
হ্যাঁ, আমি নিশ্চিত করতে পারি যে সমাধানটি কাজ করে, এটি উত্তর গ্রহণ করা উচিত।
সুমিত জৈন

এটি আমার জন্যও কাজ করেছিল
এফি কাল্টারিমিডু

3
জন্য অসংখ্য কর্মী update-alternatives --remove-all pythonস্পষ্টভাবে একটি অপ্রয়োজনীয় Overkill ছিল: আপনি সব করতে প্রয়োজন ব্যবহার করছিলেন update-alternatives --config pythonআছে pythonসর্বশেষ বিন্দু python2.*(যেমন python2.7), তারপর ব্যবহার update-alternatives --config python3আছে python3বিন্দু বিশেষভাবে python3.6 - ডিফল্ট পাইথন 3 18.04 জন্য সংস্করণ পারে।
কিরিসাকো

2
আপনি উবুন্টু 18.04 এ পাইথন 3.7 এ আপগ্রেড করার প্রয়োজন হলে, এটা Systemwide না - বা আপনি কদর্য সামান্য সমস্যা হচ্ছে শেষ পর্যন্ত বাধ্য হন Systemwide অপরিহার্য সরঞ্জাম মতো gnome-terminal, update-managerইত্যাদি বরং ভার্চুয়াল পরিবেশে (ডকুমেন্টেশন ব্যবহার এখানে এবং এখানে )
কিরিসাকো

@ কিরি সিস্টেমে কোনও এক (গুলি) প্রতিস্থাপন না করে পাইথনের অন্যান্য সংস্করণ ইনস্টল করার উপায় রয়েছে। উদাহরণস্বরূপ ডেডসনেকস পিপিএ ব্যবহার করে
wjandrea

5

আমি যখন উইন্ডোজ 10 1903 ডাব্লুএসএল উবুন্টু চলমান এই ত্রুটি বার্তাটি পর্যবেক্ষণ করেছি যখন আমি 16.04 এলটিএস থেকে 18.04 এলটিএসে আপগ্রেড করতে চাইছিলাম ।

do-release-upgradeব্যর্থ হওয়ার পরে , আমি pythonপ্রদত্ত প্রতিটি পছন্দের বিকল্পগুলি স্যুইচ করেছি update-alternatives --config pythonএবং আবার আপগ্রেড কমান্ডটি চালিয়েছি। তাতে কোনও লাভ হয়নি।

তারপর আমি লগ ফাইল চেক করা /var/log/dist-upgrade/main.logযা লাইন অন্তর্ভুক্ত

2019-09-02 20:58:08,686 DEBUG _pythonSymlinkCheck run
2019-09-02 20:58:08,687 DEBUG python symlink points to: '/etc/alternatives/python', but expected is 'python2.7' or
'/usr/bin/python2.7'
2019-09-02 20:58:08,688 ERROR pythonSymlinkCheck() failed, aborting

সুতরাং ত্রুটি বার্তায় পাইথন 3 উল্লেখ করা হলেও সমস্যাটি পাইথন 2 সম্পর্কে ।

/usr/bin/pythonসংযোগের জন্য আপগ্রেড স্ক্রিপ্ট চেক করে /usr/bin/python2, এর উত্স কোডটি DistUpgrade/DistUpgradeController.pyএখানে দেখুন: উবুন্টু লঞ্চপ্যাড

সুতরাং একটি সমাধান হ'ল বিকল্প সিস্টেম থেকে অজগরটিকে সম্পূর্ণরূপে সরিয়ে ফেলা এবং ম্যানুয়ালি লিঙ্কটি যুক্ত করা, যেমন সর্বাধিক জনপ্রিয় উত্তরে বর্ণিত।

আপনি যদি বিকল্প ব্যবস্থা থেকে অজগরটি সরাতে না চান তবে আপগ্রেড প্রক্রিয়া চলাকালীন সময়ের জন্য কেবলমাত্র লিঙ্কটি পরিবর্তন করুন:

# rm /usr/bin/python 
# ln -sf /usr/bin/python2.7 /usr/bin/python
# do-release-upgrade

এটি আমার পক্ষে কাজ করেছে।

আপগ্রেড প্রক্রিয়া চলাকালীন, লিঙ্কটি স্বয়ংক্রিয়ভাবে মেরামত করা হয়। সুতরাং যখন আপগ্রেড শেষ হয়, এটি বিকল্প ডিরেক্টরিতে পাইথন প্রবেশের দিকে ইঙ্গিত করে:

$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Sep  2 22:01 /usr/bin/python -> /etc/alternatives/python

সম্পাদনা করুন: পুঙ্খানুপুঙ্খ তথ্যের জন্য, আপনি যদি 18.04 এলটিএস থেকে 19.04 এ আপগ্রেড করেন এবং অ্যাঞ্জারটিও এই পরিস্থিতিতে প্রয়োগ হয়।


1
দ্রষ্টব্য: এই উত্তরটি উবুন্টু 18.04 এলটিএস থেকে 19.04 এ আপগ্রেডের ক্ষেত্রেও প্রযোজ্য। 18.04 এ আপডেটটি সফলভাবে শেষ হওয়ার পরে আমি নিজে চেষ্টা করেছিলাম।
ড্যানিয়েল কে।

3

মূলত এই সমস্যার সমাধানটি /usr/bin/pythonপাইথনের ডান সংস্করণটিকে নির্দেশ করে যা আপনার উবুন্টু প্রকাশটি প্রত্যাশা করে (উদাহরণস্বরূপ, ১.0.০৪ সালে পাইথন ২..7 ছিল এবং ১৮.০৪ সালে পাইথন ৩..6 ছিল)।

আপনার সিস্টেমে পাইথনের কয়েকটি সংস্করণ ইনস্টল করা থাকলে update-alternativesআপনি সেগুলি পরিচালনা করতে ব্যবহার করতে পারেন। পাইথনের জন্য আপনার ডিফল্ট বিকল্পটি আপনার সিস্টেমের সঠিক সংস্করণটি প্রত্যাশা করে (bu.u উবুন্টু ১৮.০৪ তে) এটি কার্যকর হবে না।

কারণ এই কাজ করে না যে, যখন ব্যবহার করছে update-alternatives, /usr/bin/python3পয়েন্ট /etc/alternatives/python3, এবং এটি মনে হয় যে ঠিক উপার্জন হিসাবে একই নয় /usr/bin/python3বিন্দু /usr/bin/python3.6

এই কারণেই এই সমস্যার সমাধানটি প্রায়শই আপনার পাইথন 3 সংস্করণগুলি পরিচালনা করা বন্ধ করে update-alternativesএবং /usr/bin/python3আপনার সিস্টেমের প্রত্যাশা পাইথন 3 এর সঠিক সংস্করণটি নির্দেশ করে।


/usr/bin/python18.04-এর একটি পরিষ্কার ইনস্টল-তে উপস্থিত নেই, তবে আপনি যদি ক্লিন ইনস্টল বা pythonপ্যাকেজটি ইনস্টল না করে একটি আপগ্রেড করেন তবে এটির ক্ষেত্রে পাইথন ২.7 হওয়া উচিত, ৩.6 নয়। পিইপি 394 দেখুন ।
wjandrea

স্পষ্টতই, পাইথনের বিভিন্ন সংস্করণ উবুন্টুর বিকল্প নয় এবং এটি পরিচালনা করা উচিত নয় update-alternatives। এটি হ'ল ওএস নির্দিষ্ট সংস্করণ ইনস্টল হওয়ার উপর নির্ভর করে।
wjandrea
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.