如何在 Spyder 中使用 argv
Posted
技术标签:
【中文标题】如何在 Spyder 中使用 argv【英文标题】:How to use argv with Spyder 【发布时间】:2014-12-28 01:04:55 【问题描述】:我正在 Spyder 中运行以下代码。 我已经将它输入到一个 py 文件中,然后点击运行按钮。
当我尝试运行它时,我得到了错误:
ValueError: 需要超过 1 个值才能解压
如此处所示,您打算在运行程序之前为 argv 变量提供输入,但我不知道如何做到这一点是 spyder?
http://learnpythonthehardway.org/book/ex13.html
from sys import argv
script, first, second, third = argv
print "The script is called:", script
print "The first variable is:", first
print "The second variable is:", second
print "Your third variable is:", third
【问题讨论】:
打印出argv
,看起来它是一个标量而不是一个元组。调用脚本时你的命令行参数是什么?你跑python ex13.py first 2nd 3rd
了吗?确保您的供应参数。
【参考方案1】:
阅读页面底部的常见问题解答,它特别提到了这个错误。
学生常见问题
问。当我运行它时,我得到
ValueError: need more than 1 value to unpack
。请记住,关注细节是一项重要技能。如果您查看您应该看到的部分,您会看到我在命令行上运行带有参数的脚本。你应该复制我的运行方式。
确保运行命令:
$ python ex13.py first 2nd 3rd
>> The script is called: ex13.py >> Your first variable is: first >> Your second variable is: 2nd >> Your third variable is: 3rd
您可以确保提供了参数。
if __name__ == '__main__':
if len(argv) == 4:
script, first, second, third = argv
print 'The script is called:', script
print 'Your first variable is:', first
print 'Your second variable is:', second
print 'Your third variable is:', third
else:
print 'You forgot the args...'
【讨论】:
但是我在控制台哪里输入呢?这似乎也不起作用?我在控制台中输入: $ python ex13.py first 2nd 3rd 我得到错误: $ python ex13.py first 2nd 3rd File "argv
传递给在 Spyder 中运行的脚本。这与在常规终端中运行它不同。我将在下面添加一个正确的答案。
@Mr.Polywhirl 在这里回答了一个不同的问题。 OP 专门询问如何在 Spyder IDE 中使用命令行参数。请参阅下面 Carlos 的回答。
这个答案和被问的完全不一样!【参考方案2】:
要将argv
传递给 Spyder 中的脚本,您需要进入菜单项
Run > Configuration per file
或按Ctrl+F6键,然后查找名为
的选项Command line options
在随后出现的对话框中,最后输入您要传递给脚本的命令行参数,在这种情况下可能是
one two three
【讨论】:
@FTilmann,请仔细查看日期。我的答案是在 2014 年 11 月给出的,而 Trickster 的答案是在一个多月前给出的。 我很抱歉。我把(13)日误读为年份。下次会更加小心 - 我删除了我的评论,因为它显然不合适并且基于我的一个愚蠢的错误。 @CarlosCordoba 我知道这个线程很旧,但现在有更快的方法来做到这一点,还是仍然需要通过 Ctrl+F6?谢谢 这在 Spyder 4 中没有改变,抱歉。【参考方案3】:在 Spyder 中,转到 Run > Configure
并定义您的 argv 值,如下图所示,运行脚本只需按 F6
【讨论】:
【参考方案4】:除了在其他答案中解释的Run->Configure
中进行配置外,
您可以直接从控制台使用“runfile”。
运行以下命令:
runfile('ex13.py', args='first second third')
【讨论】:
以上是关于如何在 Spyder 中使用 argv的主要内容,如果未能解决你的问题,请参考以下文章