TabPyをインストールしてみた #tableau

はじめに

どうも。DI部@大阪オフィスのtamaです。

TableauはPythonと連携できる!!

…というのは、もうTableauユーザーの間ではだいぶ知られています。そして、ちょっとググったら、記事がたくさんヒットします。

しかし、ここはビビらず、この使い古されたネタ「TabPyをインストールしてみた」エントリを投下したいと思います。

環境

  • Windows 10 Pro(macOS上のVM ware)
  • Tableau Desktop 2019.1

Anacondaをインストール

インストーラーGET〜インストール実施

下記よりインストーラーをダウンロードします。

インストールウィザードは全てデフォルトで行きました。

環境変数

パスを通しておかないと、Anacondaのコマンドが使えません。

スタートメニューから環境変数設定画面を開きます。

Pathをダブルクリックして、入力画面を開きます。

3つ設定します。インストール先がデフォルトの場合、上記のようなパスとなります。

TabPy Serverをダウンロード

コマンドプロンプトを開いて、下記コマンドを実行します。

conda install -c anaconda tabpy-server 

エラーが出る場合、環境変数の設定がちゃんとできているか確認してみてください。

TabPy Serverを起動する

Anaconda Promptを開きます。

Anaconda Prompt上で、下記ディレクトリに移動します。

C:\Users\<ユーザー名>\.conda\pkgs\tabpy-server-0.2-py37_1\Lib\site-packages\tabpy_server

そして、startup.batを実行します。

>startup.bat
Initializing TabPy...
Done initializing TabPy.
Web service listening on port 9004

この表示になれば、TabPy Serverが起動しています。

下記のエラーになる場合

>startup.bat
        1 個のファイルをコピーしました。
Traceback (most recent call last):
  File "tabpy.py", line 279, in <module>
    class EndpointsHandler(ManagementHandler):
  File "tabpy.py", line 287, in EndpointsHandler
    @tornado.web.asynchronous
AttributeError: module 'tornado.web' has no attribute 'asynchronous'

Tornadoを5.1.1にダウングレードしてみてください。

>pip install Tornado==5.1.1
Collecting Tornado==5.1.1
  Downloading https://files.pythonhosted.org/packages/d7/d5/99aff77c15da335e3dbf30254b304a526494dca8e51b4b47419772e35a4e/tornado-5.1.1-cp37-cp37m-win_amd64.whl (455kB)
    100% |████████████████████████████████| 460kB 3.3MB/s
tabpy-server 0.2 requires futures, which is not installed.
Installing collected packages: Tornado
  Found existing installation: tornado 6.0.2
    Uninstalling tornado-6.0.2:
      Successfully uninstalled tornado-6.0.2
Successfully installed Tornado-5.1.1

Tableau DesktopとTabPy Serverを連携する

Tableau Desktopを起動して、上部メニューから「外部サービス接続の管理」画面を開きます。

「外部サービスを選択する」でTabPy/External APIを選択し、サーバー名とポートを下記画像のように入力すれば、TabPy Serverに接続することができます。

これで、Tableau Desktop内で、Pythonを使用できるようになりました(計算フィールド内に書かれたPythonは、このTabPy Serverに渡されて実行されます。そして、返ってきた結果がTableau Desktopで描画される…という流れです)。

おわりに

やり尽くされた感のあるTabPyインストールをお届けしました。Anaconda周りでハマる可能性が高いので、環境変数あたりは要チェックしてください。