Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:需要超过1个值才能解包psychopy:haven';我没有碰脚本,因为它昨天起作用了,我突然发现这个错误_Python_Psychopy - Fatal编程技术网

Python ValueError:需要超过1个值才能解包psychopy:haven';我没有碰脚本,因为它昨天起作用了,我突然发现这个错误

Python ValueError:需要超过1个值才能解包psychopy:haven';我没有碰脚本,因为它昨天起作用了,我突然发现这个错误,python,psychopy,Python,Psychopy,我知道这里有很多关于价值错误的问题,但似乎没有一个是与精神病或我的问题相关的。我正在从头开始编写一个关于心理变态的实验(不涉及构建者)。昨天,我的脚本运行得非常好。今天我试着在没有添加任何新内容或删除任何内容的情况下运行它,但它突然给了我以下错误: File”/Users/vpam/Documents/fMRI_binding/VSTMbindingpaige.py“,第53行,在 脚本,文件名=argv ValueError:需要超过1个值才能解包 这是第52行和第53行,显然是第53行(

我知道这里有很多关于价值错误的问题,但似乎没有一个是与精神病或我的问题相关的。我正在从头开始编写一个关于心理变态的实验(不涉及构建者)。昨天,我的脚本运行得非常好。今天我试着在没有添加任何新内容或删除任何内容的情况下运行它,但它突然给了我以下错误:

File”/Users/vpam/Documents/fMRI_binding/VSTMbindingpaige.py“,第53行,在
脚本,文件名=argv
ValueError:需要超过1个值才能解包
这是第52行和第53行,显然是第53行(最后一行)中的某些东西让这一切发生了,但我无法想象是什么,因为它昨天工作得很好。有人知道为什么会这样吗?(为了能够包含纠正性音频反馈,我正在运行最旧版本的python,但我已经成功地在该版本上运行了它):

从系统导入argv
脚本,文件名=argv
这就是我所称的文件名(在脚本中,它位于其他行的上方)

从系统导入argv
脚本,文件名=argv
从psychopy导入gui
myDlg=gui.Dlg(title=“S博士的实验”)
myDlg.addField('Subject ID','PJP')
ok_data=myDlg.show()
如果myDlg.OK:
打印(确定数据)
其他:
打印('用户已取消')
[sID]=myDlg.data
#数据文件名stem=绝对路径+名称;稍后添加.psyexp、.csv、.log等
data_file=sID+'\u VSTMbinding.txt'
f=打开(数据文件,'a')#在此处命名文件
f、 写入(sID)
打印myDlg.data

看起来您正在使用Python2。Python3在其错误消息中提供了更详细的信息。问题是argv只包含一个值,而您正试图将其解包为两个变量
argv
包含命令行变量——如果它像您建议的那样昨天“没有任何更改”运行,那是因为您提供了一个文件名作为命令行参数

py2.py py3.py 正在运行py2.py:
$charlie在笔记本电脑上~
❯❯ ./py2.py
回溯(最近一次呼叫最后一次):
文件“/py2.py”,第4行,在
脚本,文件名=argv
ValueError:需要超过1个值才能解包
$charlie在笔记本电脑上~
❯❯ ./py2.py文件名
脚本:./py2.py
文件名:文件名
正在运行py3.py:
$charlie在笔记本电脑上~
❯❯ ./py3.py
回溯(最近一次呼叫最后一次):
文件“/py3.py”,第4行,在
脚本,文件名=argv
ValueError:没有足够的值来解包(预期值为2,实际值为1)
$charlie在笔记本电脑上~
❯❯ ./py3.py文件名
脚本:./py3.py
文件名:文件名

您如何调用脚本?这似乎表明您没有提供足够的命令行参数。请在问题中输入代码。正如您所看到的,它在注释中的格式非常糟糕。你是如何运行你的脚本的?基本上,看起来您正在执行
python script\u name.py
而不是
python script\u name.py某个文件\u name
,很明显,argv返回的是单个值。您正在尝试将单个值解压为两个变量。它不会起作用的。那它为什么要在过去进行实验呢?它以前多次正确地执行了所有操作。@boxcar44,因为您可能在过去提供了命令行参数。您需要提供一个文件名作为程序的参数。。。
#!/usr/bin/env python
from sys import argv

script, filename = argv

print("Script: {0}\nFilename: {1}".format(script, filename))
#!/usr/bin/env python3
from sys import argv

script, filename = argv

print("Script: {0}\nFilename: {1}".format(script, filename))
$ charlie on laptop in ~
❯❯ ./py2.py
Traceback (most recent call last):
  File "./py2.py", line 4, in <module>
    script, filename = argv
ValueError: need more than 1 value to unpack

$ charlie on laptop in ~
❯❯ ./py2.py filename
Script: ./py2.py
Filename: filename
$ charlie on laptop in ~
❯❯ ./py3.py
Traceback (most recent call last):
  File "./py3.py", line 4, in <module>
    script, filename = argv
ValueError: not enough values to unpack (expected 2, got 1)

$ charlie on laptop in ~
❯❯ ./py3.py filename
Script: ./py3.py
Filename: filename