在cli中指定Python模块

我试图从Linux的SSH安全壳命令行环境运行一个python脚本,我试图导入argparse库,但它会给出错误:“ImportError:No module named argparse”。

我认为这是因为Linux shell所使用的Python环境没有argparse库,我想我可以修复它,如果我能findPython环境使用的库的目录,将argparse库复制到它,但我无法find该目录所在的位置。

我将不胜感激find这个目录的任何帮助(我想我可以将argparse库包含在我的python脚本所在的目录中,但是我更愿意在其他Python库所在的地方拥有argparse库,因为它应该)。

argparse模块是在Python 2.7中添加的。 http://docs.python.org/library/argparse.html

在2.7之前,处理命令行参数最常见的方法可能是getopthttp://docs.python.org/library/getopt.html

当然,你可以通过查看sys.argv手动处理命令行。 不过getopt是一个很好的抽象层,而且更好一些。

如果您确实需要在较旧的环境中进行争论(有争议的),那么Google代码项目会对其进行维护,您可以将其包含在您的项目中。 http://code.google.com/p/argparse/

如果你在CentOS上,而且没有一个简单的RPM到Python 2.7,那么JF的pip install argparse建议就是要走的路。 在一个新的答案中调用这个解决方案。 谢谢,JF。

如果您使用Centos 6默认的Python 2.6.6,只需手动添加包

 yum install python-argparse 

这就是我所需要的IPython的工作。 奇怪的是,YUM没有自动安装它时,我使用YUM来安装IPython。

您可以通过以下方式检查模块的搜索路径:

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

但是没有认识是奇怪的:它在标准库里

您可能正在使用较旧版本的Python。

argparse模块最近在Python 2.7中被添加了。