আমি যখনই কোনও ননসেন্স কমান্ড টাইপ করি তখন কেন এই অজগর ত্রুটি বার্তা উত্পন্ন হয়?


16

আমি যখনই কোনও "ননসেন্স" কমান্ড টাইপ করি তখন এই অজগর ত্রুটি বার্তা উত্পন্ন হয়। সাধারণ কমান্ডগুলি ঠিকঠাক কাজ করে। এই ডিবাগ কিভাবে কোন ধারণা?

$ somenonexistingcommand
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site.py", line 553, in <module>
    main()
  File "/usr/local/lib/python2.7/site.py", line 535, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/local/lib/python2.7/site.py", line 268, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/local/lib/python2.7/site.py", line 243, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/local/lib/python2.7/site.py", line 233, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/local/lib/python2.7/sysconfig.py", line 535, in get_config_var
    return get_config_vars().get(name)
  File "/usr/local/lib/python2.7/sysconfig.py", line 434, in get_config_vars
    _init_posix(_CONFIG_VARS)
  File "/usr/local/lib/python2.7/sysconfig.py", line 298, in _init_posix
    raise IOError(msg)
IOError: invalid Python installation: unable to open /usr/include/python2.7/pyconfig.h (No such file or directory)
$ echo this works fine, however
this works fine, however
$

সম্পাদনা - আমার / usr / বিন / পাইথন ঠিক করার পরে, আমি এখন এই পৃথক পাইথনের ত্রুটি বার্তাটি পেয়েছি:

$ yetanothernonexistingcommand
Traceback (most recent call last):
  File "/usr/lib/command-not-found", line 10, in <module>
    import CommandNotFound
ImportError: No module named CommandNotFound

কোনওভাবেই, যখনই আমি কোনও কমান্ডকে ভুল টাইপ করি অজগরটি চালিত হয়।


1
@ রিপার: আকর্ষণীয়। কয়েকটি বিপথগামী পর্যবেক্ষণ। আপনার .bashrc এর সাথে কি অজগরের সাথে কিছু যুক্ত রয়েছে? আপনি কি অন্য ব্যবহারকারীর অ্যাকাউন্টগুলির সাথে একই আচরণ পান? আপনি স্থানীয়ভাবে পাইথন ২.7 ইনস্টল করেছেন কেন? এই ইনস্টলেশনটিতে ডিফল্ট আধিকারিক অজগরটি কী এবং যদি ২. not না হয়, আপনি কী এটি ইনস্টল করেছেন? এটি কি উবুন্টু সংস্করণ?
ফাহিম মিঠা

@ ফাহিম - .বাশার্কে পাইথন সম্পর্কিত কিছু দেখছি না। আমি স্থানীয়ভাবে পাইথন ইনস্টল করেছি। আমি জানি যে মেশিনটিতে আরও দুটি অজগর ইনস্টল করা আছে। আমি উবুন্টু 10.10 ইনস্টল করেছি।
রিপার 234

এটি অজগর ইনস্টলেশনটি বিপথগামী হয়ে যাওয়ার মতো কিছুটা গন্ধ পাচ্ছে। অফিসিয়াল সিস্টেম অজগরগুলি কি সংস্করণগুলি ইনস্টল করা আছে এবং আপনি স্থানীয়ভাবে 2.7 ইনস্টল করেছেন কেন? এটি কি সরকারীভাবে উপলব্ধ সংস্করণগুলির মধ্যে একটি নয়?
ফাহিম মিঠা

@ ফাহিম - আমি আপনার প্রশ্নটি বুঝতে পারি না। "অফিসিয়াল" বলতে কী বোঝ? আমার পাইথন ২.7 প্রয়োজন, তাই আমি এটি ইনস্টল করেছি। আমি এই বাক্সের প্রশাসক। আমি মেক / মেক ইনস্টল করে পাইথন ইনস্টল করেছি, ফিশিং কিছু করি নি (আমার মনে হয়)।
রিপার 234

@ রিপার: অর্থ, উবুন্টু এটি বাইনারি প্যাকেজ হিসাবে সরবরাহ করেছিল। অজগর টাইপ করার সময় আপনি কোন অজগর পেয়েছেন?
ফাহিম মিঠা

উত্তর:


12

ঠিক আছে, এটি কিছুটা পরিষ্কার করে দেয়। command-not-foundএকটি অজগর প্রোগ্রাম, যা আপনার কমান্ড সিস্টেমের মধ্যে পাওয়া যায় না যখন চলে। (এর কাজটি ভুল টাইপিং ইত্যাদির ক্ষেত্রে বিকল্পগুলি এবং সংশোধন করার পরামর্শ দেওয়া) দেখুন দেখুন /usr/bin/command-not-found। এটি CommandNotFoundমডিউলটি আমদানি করার চেষ্টা করছে এবং এটি স্পষ্টভাবে স্ক্রুড পাইথন ইনস্টলেশনটির দিকে নির্দেশ করছে। আমি এর সাথে ফ্যামিলার নই command-not-found, তবে আমি মনে করি আপনার পাইথন ইনস্টলেশন ঠিক করা সমস্যাটি দূরে সরিয়ে দেবে।

কিছুটা ব্যাখ্যা করার জন্য, সম্ভবত যা ঘটছে তা হ'ল command-not-foundমডিউলটি এমন কোনও জায়গায় অবস্থিত যেখানে আপনার ডিফল্ট অজগর এটি সন্ধান করছে না। মূলত একটি পথ সমস্যা।

ডিবাগ পরামর্শ:

1) শুরু করার জন্য, আউটপুট কি থেকে

$ which python

এবং সেই ফাইলটি কীসের সাথে প্যাকেজ / ইনস্টলেশন সম্পর্কিত?

2) নীচের কোড অনুসারে আপনার ইনস্টলেশন জন্য আউটপুট কি? এখানকার পথটি এই অজগরটির আমদানির পথ।

$ python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode']

1
এর একটি সম্ভাব্য সমাধান হ'ল # apt-get remove command-not-found...
সাইমন

"পাইথন ইনস্টলেশন স্ক্রু আপ" - ঠিক কী অনুপস্থিত তা কোনও ধারণা। কমান্ডনটফাউন্ড একটি মূল পাইথন মডিউল, বা আমি কি এটি আলাদাভাবে ইনস্টল করতে পারি?
রিপার 234

@ রিপার: কমান্ডনটফাউন্ড হ'ল কমান্ড-পাওয়া যায় না এমন প্যাকেজের অংশ, এটি অবশ্যই আপনার মেশিনে ইনস্টল করা উচিত, অন্যথায় আপনি এই বার্তাটি দেখছেন না। তবে, আপনি সহজেই প্যাকেজ পরিচালককে জিজ্ঞাসা করে যাচাই করতে পারেন। dpkg -l কমান্ড-পাওয়া যায় নি। আপনার সমস্যাটি হ'ল আপনার ডিফল্ট পাইথন ইনস্টলেশনটি এই মডিউলটি দেখছে না। আমি উপরে ডিবাগ করার জন্য কয়েকটি পদক্ষেপ যুক্ত করব। অন্যরা দয়া করে সংশোধন ও সংশোধন করতে দ্বিধা বোধ করবেন।
ফাহিম মিঠা

এই ফলোআপ প্রশ্নটি দেখুন - unix.stackexchange.com/questions/9711/…
রিপার 234

লিঙ্কগুলি command-not-foundভাঙ্গা বলে মনে হচ্ছে (যদিও "ত্রুটি "টি" কমান্ড না পাওয়া "সন্ধানের সময় প্রত্যাশিত ফলাফল কিনা তা বলা শক্ত ...)
নিকানা রেকলাইকস 18:48

2

আমি এতে দৌড়ে গিয়েছিলাম যখন আমি আমার ওবুন্টু ইনস্টলেশনটি ২.6-এর পরিবর্তে ৩.২-এর পরিবর্তে ৩.২-র সাথে সেট করে bu.২ অজগরের সাথে আমার উবুন্টু ইনস্টলেশন নিয়ে এসেছি।

আপনি যদি আপনার /etc/bash.bashrcফাইলটির দিকে তাকান তবে একটি লাইন রয়েছে যা এটিতে রেপোগুলির বিকল্পগুলি খুঁজতে এই পাইথন স্ক্রিপ্টটি চালাতে বলে run এটির জন্য একটি প্যাকেজ রয়েছে, তবে আপনি একবার আপগ্রেড করার পরে প্যাকেজটি সরিয়ে ফেলতে পারবেন না। আমি শুধু শুধু সরানো /usr/share/command-not-foundএবং /usr/lib/command_not_found_handlerআমার মেয়াদ পুনরায় আরম্ভ এবং এটি ভাল ওল 'ব্যাশ মত কাজ করে: command not found


6
আপনি যদি command_not_foundহ্যান্ডলারটি অক্ষম করতে চান তবে গণ্ডগোল করবেন না /usr(এটি পরবর্তী আপগ্রেডগুলি ব্যর্থ করতে পারে বা পরবর্তী আপগ্রেডগুলি দ্বারা পূর্বাবস্থায় ফিরে আসতে পারে)। পরিবর্তে, পরিবর্তন /etc/bash.bashrc। অথবা এটি আপনার নিজের ~/.bashrcসাথে অক্ষম করুন unset -f command_not_found_handle
গিলস 'অশুভ হওয়া বন্ধ করুন'

বিশেষত, প্যাকেজটি /etc/bash.bashrcসরবরাহ করে bash, যাতে আপনি সেই প্যাকেজটির আপডেটগুলি ভেঙে ফেলতে পারেন।
সিরো সান্তিলি 事件 改造 中心 法轮功 六四

2

আমার উবুন্টু 14.04 এলটিএসে পাইথন 3.5.0.0 ইনস্টল করার পরেও আমি একই ত্রুটি ছিল (যার সংস্করণে 3.4.0 সংস্করণের সিস্টেম অজগর রয়েছে)।

আমি এটি খোলার পরে /usr/lib/command-not-found, আমি বুঝতে পেরেছি যে এই ত্রুটিটি নতুনভাবে ইনস্টল করা পাইথন ৩.০.০ ব্যবহার করে সিস্টেমটি এই স্ক্রিপ্টটি কার্যকর করেছে কারণ পাইলথন ৩.০.০ ইনস্টল করার ফলে সিস্টেমটি টাইপ করার সময় এটি ব্যবহারে নেতৃত্ব দেয় python3

প্রথম ত্রুটিটি পরিবর্তন করে সহজেই এই ত্রুটিটি সংশোধন করা যায়

#!/usr/bin/python3

প্রতি

#!/usr/bin/python3.4  

এটি সেরা উত্তর ইমো। আমার ক্ষেত্রে পাইথন 3 কে একটি নতুন গৌণ সংস্করণে সিমিলিং করা একটি বোকামি সিদ্ধান্ত ছিল, সামঞ্জস্যতা ভাঙা উচিত নয় এই ভেবে। তবে হ্যাঁ, পাঠ শিখেছি।
গাই ব্রাশ থ্রিপউড

0

সমস্যাটি আপনার $PATHপরিবেশের পরিবর্তনশীল। আপনি সম্ভবত এটি গোলযোগ করেছেন। এটি এর অনুরূপ হওয়া উচিত:

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

এই লিনাক্স মিন্টের থ্রেডটি দেখুন: http://forums.linuxmint.com/viewtopic.php?f=18&t=119561

আপনি $PATHএই কমান্ডটি দিয়ে শেলের মধ্যে আপনার মেরামত করতে পারেন :

$ export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

এই অস্থায়ী! যদি সমস্যাটি পুনরায় বুট করার পরেও অব্যাহত থাকে তবে আপনি সম্ভবত $PATHআপনার পরিবেশের সেটআপ ফাইলগুলির মধ্যে একটিতে হোস্ট করেছেন /etc


0

"কমান্ড-পাওয়া যায় না" প্যাকেজটি একটি লিনাক্স ইউটিলিটি; এটি অজগর সেশনগুলির মধ্যেই নয়, কমান্ড শেল প্রম্পটে অজানা কমান্ডগুলির প্রতিক্রিয়া জানায়। (আমি দেখতে পাই এই নামের একটি অজগর প্যাকেজও রয়েছে।)

এর নির্ভরতাগুলির মধ্যে এটি অজগর রয়েছে, অর্থাত্ ট্রিগার হওয়ার সময় এটি অজগর ব্যবহার করে; যাতে আপনি যখনই কোনও কমান্ড টাইপ করেন যে শেলটি আপনার PATH- তে খুঁজে পাচ্ছে না কেন অজগর কেন ডাকা হয় তার জন্য অ্যাকাউন্টগুলি।

আমি দেখতে পাচ্ছি লিনাক্স-এ পাওয়া না-পাওয়া কমান্ড ইনস্টল করার জন্য একটি 'অ্যাপ্ট' প্যাকেজ রয়েছে; ডেবিয়ান লিনাক্সের জন্য, এটি এখানে অনুঘটকিত:

https://packages.debian.org/sid/admin/command-not-found


0

দায়ী সব লাইন আউট মন্তব্য command-not-foundমধ্যে/etc/bash.bashrc সমস্যা, পাইথন সংস্করণ সুইচিং তৈরি করেছিল যা সমাধান।

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