![ValueError:需要多于 1 个值才能解包](https://linux22.com/image/1124201/ValueError%EF%BC%9A%E9%9C%80%E8%A6%81%E5%A4%9A%E4%BA%8E%201%20%E4%B8%AA%E5%80%BC%E6%89%8D%E8%83%BD%E8%A7%A3%E5%8C%85.png)
当我运行此代码时:
~/cdec/training/mira/mira.py -d dev.lc-tok.es-en.sgm -t devtest.lc-tok.es-en.sgm -c cdec.ini -j 2
我收到此错误消息:
File "~/prefix/sw/cdec/training/mira/mira.py", line 551, in <module>
main()
File "~/prefix/sw/cdec/training/mira/mira.py", line 204, in main
args.weights, hope_best_fear = optimize(args, script_dir, dev_size)
File "~/prefix/sw/cdec/training/mira/mira.py", line 327, in optimize
(source, refs) = split_devset(args.devset, args.output_dir)
File "~/prefix/sw/cdec/training/mira/mira.py", line 314, in split_devset
s,r = line.strip().split(' ||| ',1)
ValueError: need more than 1 value to unpack
这发生在这个脚本
我可以修复这个问题吗?
答案1
从字面上讲,这里发生的事情是代码期望从后面得到两个值line.strip().split(' ||| ',1)
(因此它可以将这些值分配给s
和r
),但它只得到一个。因此它爆炸了。
发生这种情况是因为您没有正确使用脚本。如果您查看--help
(或进一步查看代码,第 90 行),您会发现它需要一种非常具体的格式:
parser.add_argument('-d', '--devset', required=True,
help='dev set input file in parallel. '
'format: src ||| ref1 ||| ref2')
你没有遵循这一点,所以它无法分裂,因此会爆炸。