NameError:名称“argv”未在 Python 中定义
NameError: name ‘argv’ is not defined in Python
当我们使用
argv
列表而不首先从sys
模块导入它时,会出现 Python“NameError: name ‘argv’ is not defined”。要解决该错误,请在使用前导入argv
– from sys import argv
。
下面是错误如何发生的示例。
主程序
# ⛔️ NameError: name 'argv' is not defined print(argv) print(argv[0]) print(argv[1:])
为了解决这个错误,我们必须
从sys模块中导入argv列表
。
主程序
# ✅ import argv list from sys first from sys import argv print(argv) print(argv[0]) print(argv[1:])
即使该sys
模块在 Python 标准库中,我们仍然需要在使用前导入它。
确保您没有在 import 语句中拼错任何内容,因为变量和模块的名称区分大小写。
另外,请确保您没有导入argv
嵌套范围,例如函数。在顶层导入模块,以便能够在整个代码中使用它。
argv
直接导入列表的另一种方法是导入sys
模块并argv
以sys.argv
.
主程序
# ✅ import entire sys module import sys print(sys.argv) print(sys.argv[0]) print(sys.argv[1:])
一般来说,最好只导入代码使用的函数、变量和类,而不是导入整个模块。
例如,当我们使用诸如 之类的导入时
import sys
,很难看到sys
文件中使用了模块中的哪些函数和变量。相反,当我们导入特定的函数和变量时,更容易看出正在使用哪些函数和变量。
该argv
变量是传递给 Python 脚本的命令行参数列表。
列表中的第一项 ( argv[0]
) 是脚本的名称。
sys
您可以通过访问官方文档查看模块提供的所有函数和常量。
结论#
当我们使用
argv
列表而不首先从sys
模块导入它时,会出现 Python“NameError: name ‘argv’ is not defined”。要解决该错误,请在使用前导入argv
– from sys import argv
。