如何解决Datajoint 自动填充使函数错误:DataJointError:关系必须具有自动填充的主要依赖项才能工作
我收到以下错误:
“DataJointError:关系必须具有主要依赖项才能自动填充工作” 我认为这是一个非常基本的开始,首先定义一个手动表格,然后定义一个导入表格。
在这种情况下,我们有一个文件夹中的 matlab 文件名手动表。然后,我们希望使用这些文件中的数据自动填充导入的表。所以这些表之间的依赖关系应该是一对一的。但是,我们在尝试填充时遇到以下错误,如下所示:DataJointError:关系必须具有主要依赖项,自动填充才能在尝试实现 make 函数时起作用。
上游会话表有主键“文件名”,我们希望导入的表定义如下:
@schema
class Trials(dj.Imported):
deFinition = """
trial : int
-> Session
---
type = null : int
outcome = null : int
"""
def make(self,key): # key is the primary key of one of the entries in the table `Scan`
name = ((Session & key).fetch1()['filename'])
print(name)
Trials.populate()
我已尝试关闭 jupyter notebook 并重新打开、重新启动内核等。在此先感谢您的帮助!
解决方法
此问题已在 https://github.com/datajoint/datajoint-python/issues/902 中报告并将很快得到解决。这是因为依赖项在填充之前没有加载到内存中。中间修复是在调用 populate
之前绘制架构图 - 这将加载依赖项并使 populate
正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。