如何在Spyder中使用argv

33 投票
4 回答
100924 浏览
提问于 2025-04-30 21:52

我在Spyder里运行下面的代码。

我把它写在一个.py文件里,然后直接点击了运行按钮。

但是当我尝试运行时,出现了这个错误:

ValueError: 需要更多的值来解包

如这里所示,在运行程序之前,你需要为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
暂无标签

4 个回答

21

在Spyder中,点击 运行 > 配置,然后按照下面的图示设置你的argv值。要运行脚本,只需按 F6 键。

diagram

42

除了在 Run->Configure 中进行设置,正如其他回答所提到的,你还可以直接在控制台使用“runfile”。

运行以下命令:

   runfile('ex13.py', args='first second third')
82

要在Spyder中给脚本传递argv,你需要去菜单里找到

运行 > 每个文件的配置

或者直接按Ctrl+F6这个组合键,然后在弹出的对话框中寻找一个叫做

命令行选项

的选项,最后在这里输入你想传递给脚本的命令行参数,比如说可以输入

one two three

-16

请查看页面底部的常见问题解答,里面专门提到了这个错误。

常见学生问题

问:我运行的时候出现了 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...'

撰写回答