12

I am trying to run a python script from the Linux SSH Secure Shell command line environment, and I am trying to import the argparse library, but it gives the error: "ImportError: No module named argparse".

I think that this is because the Python environment that the Linux shell is using does not have the argparse library in it, and I think I can fix it fix it if I can find the directories for the libraries being used by the Python environment, and copy the argparse library into it, but I can not find where that directory is located.

I would appreciate any help on finding this directory (I suppose I could include the argparse library in the same directory as my python script for now, but I would much rather have the argparse library in the place where the other Python libraries are, as it should be).

2
  • argparse.py is a pretty standard piece of python, it's possible that you've corrupted your sys.path. Please run this command and paste the result into your question: python -c "import argparse; print argparse" Commented Sep 19, 2011 at 15:50
  • 1
    what version of python are you using? Commented Sep 19, 2011 at 15:50

5 Answers 5

6

The argparse module was added in Python 2.7. http://docs.python.org/library/argparse.html

Prior to 2.7, the most common way to handle command-line arguments was probably getopt. http://docs.python.org/library/getopt.html

Of course you can always handle the command-line manually simply by looking at sys.argv. However getopt is a good abstraction layer, and argparse is even better.

If you truly need argparse in older environments (debatable), there is a Google Code project maintaining it, and you can include that in your project. http://code.google.com/p/argparse/

Sign up to request clarification or add additional context in comments.

2 Comments

Prior to 2.7, optparse module could be used or pip install argparse.
@greg you can use virtualenv which includes pip
2

If you're on CentOS and don't have an easy RPM to get to Python 2.7, JF's suggestion of pip install argparse is the way to go. Calling out this solution in a new answer. Thanks, JF.

Comments

2

Just add the package manually if your using Centos 6 default Python 2.6.6

yum install python-argparse

Thats all it took for me to get IPython to work. Odd that YUM didnt install it automatically when I used YUM to install IPython.

Comments

1

You can examine the search path for modules with:

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

But not having argparse is odd: it's in the standard library...

1 Comment

Not in standard lib until 2.7. See my answer for details.
0

You're probably using an older version of Python.

The argparse module has been added pretty recently, in Python 2.7.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.