PythonのEmbeddableパッケージを活用して、TouchDesignerのプロジェクトの配布をより簡易にする方法をご紹介します。この方法を採用することで、開発環境から納品用端末へ開発したtoeファイルをただコピーするだけで、納品用端末にPythonをインストールする手間が省けます。本記事では、Windows環境での手順に焦点を当てて解説します。
- Python Embeddable packageのダウンロード
- pythonXX._ pthファイルの編集
- pipをインストール
- Pythonライブラリのインストール
- Touch designerにライブラリのパスを設定
Python Embeddable packageのダウンロード
まずはじめに、PythonのEmbeddable packageをダウンロードします。ダウンロードはPythonの公式ウェブサイトから行うことができます。
ダウンロードしたEmbeddable packageの中身を、toeファイルのあるディレクトリにあるPythonフォルダにコピーします。
pythonXX._ pthファイルの編集
ここで注意点が一つ。ダウンロードしたPythonのバージョンに応じたpythonXX._pthファイルを編集する必要があります。その際には、’import site’のコメントアウトを外します。
python310.zip.
# Uncomment to run site.main() automatically
import site
pipをインストール
次に、pipをインストールします。pipのインストールファイル、 🔗get-pip.pyをダウンロードし、TD-embeddable-python\pythonディレクトリに配置します。その後、このディレクトリに移動し、
.\python.exe get-pip.py
というコマンドを実行すると、pipがインストールされます。
Pythonライブラリのインストール
これで、ライブラリのインストールが可能になります。試しに、dateutilをインストールしてみましょう。これを行うためにはTD-embeddable-python\pythonディレクトリで
.\python.exe -m pip install python-dateutil
というコマンドを実行します。
Touch designerにライブラリのパスを設定
TouchDesignerではTD-embeddable-python\python\Lib\site-packagesにパスを設定します。今回は、TouchDesignerのスタート時に、システムパスにTD-embeddable-python\python\Lib\site-packagesへのパスを追加するように設定します。
DATのExecuteを使用し、TouchDesignerのStart時に、システムパスにTD-embeddable-python\python\Lib\site-packagesへのパスを追加します。
import sys
import os
def onStart():
mypath = os.path.abspath("./python/Lib/site-packages")
if mypath not in sys.path:
sys.path = [mypath] + sys.path
debug(sys.path)
return
Textportでパスが追加されているか確認できます。
最後に、実際にdateutilを使用してみましょう。下記のコードをDATのTextに記入し、実行(CTRL+r)します。
from dateutil.relativedelta import *
from dateutil.easter import *
from dateutil.rrule import *
from dateutil.parser import *
from datetime import *
now = parse("Sat Oct 11 17:13:46 UTC 2003")
today = now.date()
year = rrule(YEARLY,dtstart=now,bymonth=8,bymonthday=13,byweekday=FR)[0].year
rdelta = relativedelta(easter(year), today)
print("Today is: %s" % today)
以下のように表示がされれば、無事、外部モジュールを読み込んで使用することができます。
以上の方法で、Python Embeddableを活用すれば、プロジェクトの配布が格段に簡単になります。必要なライブラリ等を一つのフォルダにまとめ、プロジェクトと合わせて配布するだけです。配布先では細かなコマンドライン作業やインストール作業が不要となります。
プロジェクトファイルはこちらからご確認いただけます。