【问题标题】:How to pass arguments in Spyder using sys argv [duplicate]如何使用 sys argv 在 Spyder 中传递参数 [重复]
【发布时间】:2022-01-15 07:22:58
【问题描述】:

我正在努力使用命令行在 spyder 中传递 2 个参数。我使用了 run-->configuration per file,并在命令行选项中输入JPEGtoPNG.py/Poxedex/new/. JPEGtoPNG 是 python 文件,要传递的参数是 poxedex 和 new。

困境: 当我运行print(sys.argv[0]) 时,它会打印:

runcell(0, '/Users/chideraokafor/JPEGtoPNG.py')

据我所知,这是默认设置。 但是,当我运行 print(sys.argv[1]) 时,它会打印:

IndexError: list index out of range.

我已经尝试了所有方法,但仍然没有传递两个参数,我真的不想使用 pycharm。

【问题讨论】:

  • 请看我在上面提到的问题中的回答。此外,这不适用于单元格,仅当您运行整个文件时。

标签: python spyder


【解决方案1】:

如果Poxedexnew 是脚本的命令行参数,JPEGtoPNG.py,执行应该是:

python JPEGtoPNG.py Poxedex new

没有/ 分开。

请注意,您得到的错误是因为您没有传递命令行参数,因此sys.argv 是长度为一的列表(那个是脚本名称),并且在 Python 中索引从 0 开始,因此访问second 元素通过sys.argv[1] 确实超出了范围。

由于 Spyder 提供了 Python 控制台,并且您通过菜单传递的选项的目的是 - options 而不是参数 - 您可能会发现从命令运行脚本更容易行,例如使用 VSCode。

即使您不想使用 VSCode,也可以打开一个终端窗口并从那里调用脚本。只需检查您的环境变量以确保 Python 在您的系统(或用户)路径上。

【讨论】:

    猜你喜欢
    • 2014-12-28
    • 2013-11-05
    • 1970-01-01
    • 2018-01-07
    • 2015-01-30
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    相关资源
    最近更新 更多