Python Pyviz面板:can';无法使用FileInput小部件

Python Pyviz面板:can';无法使用FileInput小部件,python,pyviz,panel-pyviz,param-pyviz,Python,Pyviz,Panel Pyviz,Param Pyviz,我一定是遗漏了一些关于小部件如何工作的基本信息 在下面的代码中,我让用户选择一个csv文件和要显示的行数。如果没有选择文件,我会生成一些随机数据 作为pd进口大熊猫;输入numpy作为np;将matplotlib.pyplot作为plt导入 作为pn导入面板 将panel.widgets作为pnw导入 请注意:扩展部分() datafile=pnw.FileInput() head=pnw.IntSlider(name='head',value=3,start=1,end=60) @pn.de

我一定是遗漏了一些关于小部件如何工作的基本信息

在下面的代码中,我让用户选择一个csv文件和要显示的行数。如果没有选择文件,我会生成一些随机数据


作为pd进口大熊猫;输入numpy作为np;将matplotlib.pyplot作为plt导入
作为pn导入面板
将panel.widgets作为pnw导入
请注意:扩展部分()
datafile=pnw.FileInput()
head=pnw.IntSlider(name='head',value=3,start=1,end=60)
@pn.depends(数据文件,头)
def f(数据文件,头):
如果数据文件为无:
data=pd.DataFrame({'x':np.random.rand(10)})
其他:
数据=pd.read\u csv(数据文件)
返回pn.Column(f'##{head}第一行,data.head(head))
widgets=pn.Column(数据文件,头)
col=pn.列(小部件,f)
上校
问题出在这里。如果我没有选择一个文件并使用
head
小部件,窗格将按预期运行:显示的行数随着我更改
head
小部件而变化,并且我可以看到每次更新后数据都不同

但是,一旦我选择了一个文件,就会出现两个问题。首先,数据没有加载。其次,专栏不再对我的互动做出反应


有人能告诉我我的问题是什么吗?

上面代码中的问题是,函数
f
中的
datafile
变量不是文件名,而是作为字节字符串的文件内容。由于该错误,函数抛出一个未处理的异常,不幸的是,该异常没有在任何地方注册

因此,数据读取线应该是


data=pd.read\u csv(io.BytesIO(datafile))

您可以通过datafile.filename访问文件名,但这只是文件名,而不是文件的目录/路径