12

我正在尝试从 Linux SSH Secure Shell 命令行环境运行 python 脚本,并且我正在尝试导入 argparse 库,但它给出了错误:“ImportError: No module named argparse”。

我认为这是因为 Linux shell 使用的 Python 环境中没有 argparse 库,如果我能找到 Python 环境正在使用的库的目录,我想我可以修复它,并且将 argparse 库复制到其中,但我找不到该目录所在的位置。

我将不胜感激找到这个目录的任何帮助(我想我现在可以将 argparse 库包含在与我的 python 脚本相同的目录中,但我更愿意将 argparse 库放在其他 Python 库所在的位置,因为它应该)。

4

5 回答 5

6

argparse模块是在 Python 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/

于 2011-09-19T19:15:31.810 回答
2

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

yum install python-argparse

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

于 2014-10-20T18:56:13.970 回答
2

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

于 2012-04-04T16:50:18.813 回答
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...

于 2011-09-19T15:49:45.260 回答
0

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

argparse 模块是最近在 Python 2.7 中添加的。

于 2011-09-19T16:15:14.587 回答