2011-09-19 9 views
12

में Argparse पायथन मॉड्यूल लिनक्स एसएसएच सिक्योर शैल कमांड लाइन पर्यावरण से एक पायथन स्क्रिप्ट चलाने की कोशिश कर रहा हूं, और मैं argparse लाइब्रेरी आयात करने की कोशिश कर रहा हूं, लेकिन यह त्रुटि देता है: "आयात त्रुटि: कोई मॉड्यूल नाम नहीं है" ।क्लाइ

मुझे लगता है कि ऐसा इसलिए है क्योंकि लिनोन खोल का उपयोग करने वाले पाइथन वातावरण में इसमें Argparse लाइब्रेरी नहीं है, और मुझे लगता है कि मैं इसे ठीक कर सकता हूं अगर मैं पुस्तकालयों के लिए निर्देशिकाओं को ढूंढ सकता हूं पायथन पर्यावरण, और इसमें argparse लाइब्रेरी की प्रतिलिपि बनाएँ, लेकिन मुझे नहीं पता कि वह निर्देशिका कहां स्थित है।

मैं इस निर्देशिका को खोजने में किसी भी मदद की सराहना करता हूं (मुझे लगता है कि मैं अपनी पाइथन लिपि के रूप में उसी निर्देशिका में argparse लाइब्रेरी को शामिल कर सकता हूं, लेकिन मेरे पास उस जगह पर argparse लाइब्रेरी होगी जहां अन्य पायथन पुस्तकालय जैसे, यह होना चाहिए)। आप शायद अजगर के एक पुराने संस्करण का उपयोग कर रहे यह मानक पुस्तकालय में है ...

+0

argparse.py पायथन का एक सुंदर मानक टुकड़ा है, यह संभव है कि आपने अपना sys.path दूषित कर दिया हो। कृपया इस कमांड को चलाएं और परिणाम को अपने प्रश्न में पेस्ट करें: python -c "आयात argparse; प्रिंट argparse" –

+1

आप किस अजगर का उपयोग कर रहे हैं? –

+2

आप किस पर भरोसा कर रहे हैं? – myusuf3

उत्तर

1

आप के साथ मॉड्यूल के लिए खोज पथ की जांच कर सकते हैं:

import sys 
print "\n".join(sys.path) 

लेकिन नहीं होने argparse अजीब है ।

Argparse मॉड्यूल हाल ही में पाइथन 2.7 में जोड़ा गया है।

+0

2.7 तक मानक lib में नहीं। विवरण के लिए मेरा जवाब देखें। – dkamins

6

argparse मॉड्यूल पायथन 2.7 में जोड़ा गया था। http://docs.python.org/library/argparse.html

2.7 से पहले, कमांड लाइन तर्कों को संभालने का सबसे आम तरीका शायद getopt था। http://docs.python.org/library/getopt.html

बेशक आप sys.argv देखकर मैन्युअल रूप से कमांड लाइन को संभाल सकते हैं। हालांकि getopt एक अच्छी अमूर्त परत है, और argparse भी बेहतर है।

यदि आपको वास्तव में पुराने वातावरण (बहस योग्य) में argparse की आवश्यकता है, तो Google Code प्रोजेक्ट इसे बनाए रखता है, और आप इसे अपनी प्रोजेक्ट में शामिल कर सकते हैं। http://code.google.com/p/argparse/

+4

2.7 से पहले, ['optparse'] (http://docs.python.org/library/optparse.html) मॉड्यूल का उपयोग किया जा सकता है या 'पाइप इंस्टॉल Argparse'। – jfs

+0

मैं "पीआईपी" कैसे स्थापित कर सकता हूं? – greg

+0

@greg आप 'वर्चुअलएनवी' का उपयोग कर सकते हैं जिसमें 'पाइप' – dkamins

2

यदि आप CentOS पर हैं और Python 2.7 पर जाने के लिए एक आसान RPM नहीं है, तो pip install argparse का जेएफ का सुझाव जाने का तरीका है। एक नए जवाब में इस समाधान को बुलाओ। धन्यवाद, जेएफ।

2

बस पैकेज मैन्युअल रूप से जोड़ने अगर आपके Centos 6 डिफ़ॉल्ट अजगर 2.6.6

yum install python-argparse 

का उपयोग कर यही सब यह मेरे लिए ले लिया IPython काम करने के लिए मिलता है। अजीब है कि YUM ने इसे स्वचालित रूप से इंस्टॉल नहीं किया जब मैंने YY का उपयोग IPython स्थापित करने के लिए किया था।