概要
UiPath から Python を実行できると、人工知能、機械学習などのライブラリを利用でき、これらの作業の自動化ができるなど、使用用途が広がります。そこで、UiPath からPythonを呼び出す方法を探ってみたいと思います。方法大きく分けて2つあり、専用のパッケージを使用する方法もありますが、Pythonディストリビューションに癖があったりするので、その辺も見ていきます。
環境
- UiPath Studio 2019.7.0
- Python
- (方法1の場合) 方法1-1は環境は限定しない。方法1-2はPython 3.7 Python Software Foundation Distribution (Python.org からのダウンロード、およびWindows Store)を利用。
- (方法2の場合) Python 2.7, 3.3-3.6 (Anaconda Distribution 32-bit) を利用。
実行するPythonコード
key = input('Hello World!')
方法1. アプリケーションのプロセスを開始で実行
まず一番単純で何も前提条件がいらない方法です。この方法では、UiPath環境の事前準備も不要で、Pythonディストリビューションにかかわらずpython.exeを実行可能です。
1-1.「プロセスを開始」
アクティビティの中の「システム/アプリケーション/プロセスを開始」をシーケンスのウィンドウにドラッグ&ドロップします。
このプロパティの中で今回利用するのは「ファイル名」と「引数」です。
1-2-1. .pyの関連付けを利用して実行
.pyとの関連付けがされるPythonパッケージであれば、この方法をとることができます。.pyファイルを直接「ファイル名」に指定 (ダブルクオートで囲む)します。
このシーケンスを実行すると、以下の通り、「Hello World!」が表示されて入力待ちになります。
この方法では、UiPathはPythonスクリプトの完了を待たずに完了します。
1-2-2. python.exeのパスと引数を指定して実行
.pyとの関連付けがされないPythonパッケージでも、この方法で実行できます。Pythonパッケージが複数インストールされていて、python.exeを明示的に指定したい場合にも便利です。「ファイル名」にはpython.exeのパスを、「引数」には.pyファイルのパスを指定します。
引数のほうのパスもダブルクオートで囲うのを忘れずに。
python.exeの場所は以下になります。
- Anaconda 版 (All User インストールの場合):
C:\ProgramData\Anaconda3\python.exe
- Python Software Foundation Pyhon.org 版:
C:\Users\(User名)\AppData\Local\Programs\Python\Python37-32\python.exe
- Python Software Foundation Windows Store 版:
C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1264.0_x64__qbz5n2kfra8p0\python.exe
また、Python Software Foundation Distribution を入れると、c:\windouws\py.exe
にPython Launcherもインストールされるため、こちらのパスを指定してもOKです。
この方法では、UiPathはPythonスクリプトの完了を待たずに完了します。
方法2. 専用パッケージを利用
UiPathにはUiPath.Python.Activities という専用のパッケージが用意されています。UiPath公式ではこれを使用することになっています。セットアップ後、追加のアクティビティが使えるようになります。
ちなみに、この方法は私も調べていていろいろハマったのですが、使えるバージョンに制限があるようです。
制限事項
- 32 bit版のみ動作可能。64 bit版は動作しない。
- Pythonバージョンは2.7, 3.3-3.6で動作。3.7は動作しないようである。
- Distributionで制限があるかどうかは不明。情報求む。(Distributionによってpython.exeのインストール場所が結構違うので)
2-1. UiPath.Python.Activitiesパッケージのインストール
まず、UiPath Studioの「パッケージの管理」をクリックして、パッケージをインストールします。これをクリックして、右側の「インストール」ボタンをクリックします。
左ナビで「オフィシャル」を選択して、上の検索ボックスで「Python」と入力して検索すると、UiPath.Python.Activitiesパッケージが表示されます。右側に表示される「インストール」ボタンをクリックして「保存」ボタンをクリックします。
ライセンスへの同意を求められるので、同意事項を確認の上、「同意する」をクリックします。
すると、アクティビティに「アプリの起動元/Python」が追加されます。
これでパッケージの準備が整いました。
2-2. 「Python スコープ」の設定
最初にやるべきことは、Python スコープの設定です。このコンテナの中では、Python環境のパスを設定し、環境の初期化、Pythonオブジェクトの保持を行います。スコープが終了すると、ロードされたオブジェクトが削除される、というものです。
アクティビティからPythonスコープをドラッグ&ドロップすると、以下のようなフローチャートが作成されます。
バージョンはAutoになっていますが、エラーが出る場合、手で指定してみてください。バージョン3.5, 3.6であればAutoでもいけるようです。パスには、python.exeが格納されているディレクトリをダブルクオートで囲んで記載します。(Anaconda DistributionならC:\ProgramData\Anaconda3
など)
2-3. 「Python スクリプトを実行」
hello.pyファイルを実行するには、これをPythonスクリプトパスに指定します。
これで実行すれば同様の結果が得られる、はずですが、なぜか私の環境ではPythonコードは実行されず、デバッグでステップインしてみると以下のようなエラーが出てしまいました。。。