Python 3.x 使用用户定义的python函数&引用;ModuleNotFoundError“;,画面,塔比

Python 3.x 使用用户定义的python函数&引用;ModuleNotFoundError“;,画面,塔比,python-3.x,tableau-api,tabpy,Python 3.x,Tableau Api,Tabpy,我试图使用Tabpy接口使用Tableau调用python函数,但收到一个“没有名为interface_v1的模块”错误。我已采取的步骤: 使用git说明安装tabpy 在名为interface_v1.py的文件中定义了我的函数。函数如下所示 启动了tabpy服务器 打开新的Tableau工作簿并连接到服务器 使用以下内容创建了新的计算字段: 当我尝试使用计算字段时,我在tabpy服务器日志中收到上面的错误ModuleNotFoundError。我将工作簿和python文件放在同一个目录中,并尝

我试图使用Tabpy接口使用Tableau调用python函数,但收到一个“没有名为interface_v1的模块”错误。我已采取的步骤:

  • 使用git说明安装tabpy
  • 在名为interface_v1.py的文件中定义了我的函数。函数如下所示
  • 启动了tabpy服务器
  • 打开新的Tableau工作簿并连接到服务器
  • 使用以下内容创建了新的计算字段:
  • 当我尝试使用计算字段时,我在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')
    
    然后从tableau中,您应该能够调用命名函数

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

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

    您最好的解决方案是将您的“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')
    
    然后从tableau中,您应该能够调用命名函数

    script_int("tabpy.query('call_matlab',_arg1)",[COL_TO_SEND])
    
    显然是针对您的特定用例进行调整