使用用户定义的 python 函数。 "ModuleNotFoundError" , 画面, 塔比



我正试图使用Tabpy接口使用Tableau调用python函数,但收到"No module named interface_v1"错误。我采取的步骤:

  1. 使用此处的git指令安装tabpy
  2. 在一个名为interface_v1.py的文件中定义了我的函数
def call_matlab(a):
return a
  1. 启动tabpy服务器
  2. 已打开新的Tableau工作簿并连接到服务器
  3. 使用创建了一个新的计算字段:
SCRIPT_INT("import interface_v1 as inter
return inter.call_matlab(_arg1)", SUM([Body]))

当我尝试使用计算字段时,我在tabpy服务器日志中收到上面的错误ModuleNotFoundError。我把工作簿和python文件放在同一个目录中,我还试着把它放在tabpy\modules\scripts文件夹中。

注意:我不是在虚拟环境中使用tabpy,我对Tableau很陌生,所以如果我只是错过了一些东西,很抱歉。谢谢你的帮助。

这里最好的解决方案是将"interface_v1.py"部署为tabpy服务器上的端点。

这样做的好处是速度更快,可以在内存中加载等等。否则,您将需要探索在tabpy运行的同一目录中加载您引用的文件。我强烈建议采用终点。

文档相当直观。

基本上,您将对您的信息执行以下操作:

from tabpy.tabpy_tools.client import Client
client = Client('http://localhost:9004/')
def call_matlab(a):
return(a)
client.deploy('call_matlab', call_matlab, 'Pass data to call_matlab')

然后从表中您应该能够调用命名函数

script_int("tabpy.query('call_matlab',_arg1)",[COL_TO_SEND])

显然是在根据您的具体用例进行调整。

相关内容

  • 没有找到相关文章

最新更新