Python错误:“ValueError: 需要多个值去解包”

47 投票
8 回答
295081 浏览
提问于 2025-04-15 22:36

在Python中,当我运行这段代码时:

from sys import argv

script, user_name =argv
prompt = '>'

print "Hi %s, I'm the %s script." % (user_name, script)

我得到了这个错误:

Traceback (most recent call last):  
script, user_name =argv  
ValueError: need more than 1 value to unpack

这个错误是什么意思呢?

8 个回答

4

你不能在交互式解释器中直接运行这段代码。你需要先把它保存到一个文件里,然后像这样给它传递参数。

$ python hello.py user338690
8

你遇到的错误是“ValueError: need more than 1 value to unpack”,这是因为你只提供了一个值,也就是这个脚本(在这个例子中是ex14.py)。

问题在于,你在运行.py文件后忘记加上一个名字。

你代码的第3行是

script, user_name = argv

这个脚本是ex14.py,你忘记在后面加上名字了。

所以如果你的名字是michael,那么你在终端输入的内容应该像这样:

> python ex14.py michael

做这个修改后,代码就能完美运行了。

40

可能是你在命令行中没有提供参数。在这种情况下,sys.argv 里只会有一个值,但它需要有两个值,才能给 user_namescript 提供数据。

撰写回答