导入错误:没有模块名为argparse

问题描述:

我试图运行Python程序,但得到的错误导入错误:没有模块名为argparse

ImportError: No module named argparse 

我发现这个问题“argparse Python modules in cli”这里*上和尝试的第一个评论,即运行命令

python -c "import argparse; print argparse" 

这就造成了

<module 'argparse' from '/usr/lib/python2.7/argparse.pyc'> 

对于我来说,好像有Python的2 .7安装在机器上(其中我不是管理员),​​模块也存在。所以我想知道为什么没有找到该模块。在另一台机器上,脚本按照其应该运行。在上面提到的帖子中,有可能sys.path被破坏的评论。我不知道这意味着什么,或者我如何改变它的价值。有任何想法吗?

+3

您是否使用Python 2.6或更早版本? “似乎”听起来不太令人信服。你在开始翻译时看到了什么版本号? 'sys.version'? – Junuxx 2013-02-26 15:52:41

+7

您正在使用的Python脚本是否有一个shebang(在它的开始处有一个'#!'),它告诉它使用与默认不同的Python可执行文件? – 2013-02-26 15:53:02

+1

我们需要查看脚本本身的更多细节。例如,用什么可执行文件来运行它? – 2013-02-26 15:54:46

你没有安装python.There的正确版本的模块是两种方法可以解决这个问题

  1. 重新安装Python和模块
  2. 变化蟒蛇路径的一个证明一个这些链接(osxwindows的(你不应该这样做的窗户,我选择XP,因为这是我跑什么),linux

其中一个应该工作,但如果它不尝试重新启动。走OD LUCK !! :)

如果您的源文件与argparse具有相同的名称,并且您将它与脚本放在当前目录中,则可能会遇到此问题。

+0

对不起,我完全不明白你的答案。 “源文件与argpass具有相同名称”是什么意思? – 8bitjunkie 2015-10-20 12:19:47

尝试安装​​:

easy_install argparse 
+1

用户已经在'/ usr/lib/python2.7'中安装了'argparse'的Python安装。为什么第二次重新安装它?... – 2013-12-26 23:54:02

你可能使用Python的不同版本脚本比你在命令行中执行一个。确保脚本正在使用此解释器:/usr/lib/python2.7。这个安装肯定有​​,正如你在第一篇文章中用导入证明的那样。

为什么你的脚本可以使用不同的Python安装?它可能是脚本第一行的Shebang行的结果,它可能指向不具有​​模块的其他Python解释器。

编辑:另一个问题是,你的脚本清洁sys.path名单,这将是非常糟糕的,因为每一个预安装模块将无法访问......

+0

谢谢。我没有像“./myscript.py”那样运行我的脚本,而是更改了“python ./myscript.py”并且它运行正确,因为它使用了我的PATH的Python – mdiehl13 2018-02-09 22:32:43

在Debian系统,您可以使用以下命令来安装argparse包:

sudo apt-get install python-argparse 

在CentOS上,我用yum install python-argparse解决了这个问题。 HT到LVA的正确包名称。