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

Use user defined python functions. "ModuleNotFoundError", Tableau, Tabpy

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

  1. 使用 git 说明安装 tabpy here
  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 所在的同一目录中 运行。我强烈建议端点。

documentation 相当简单。

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

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')

然后您应该可以从 tableau 中调用命名函数

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

显然会针对您的特定用例进行调整。