如何在 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 "", line 1 $ python ex13.py first 2nd 3rd ^ SyntaxError: invalid syntax 使用 Mac 和 Windows 但这对您的情况最有帮助,请注意:Youtube: Command Line Arguments in Python 我认为你很困惑@Bazman 他询问如何将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的主要内容,如果未能解决你的问题,请参考以下文章

如何在虚拟环境中运行 Spyder?

如何在 Python 中使用 Spyder 进行高效调试?

如何在 Spyder 中打开 .ipynb 文件?

如何在 Spyder 中更改 Python 的路径?

如何在 VSCode 中复制以下 Spyder 行为?

如何在spyder中安装模块[重复]