💬

【Power Automate Desktop】Python 3.4 で print variableName がエラーになる原因と対処法

2025/03/05に公開

概要

2025/3/4 時点で、公式リファレンスで紹介されている情報が古いです。
Python スクリプトを実行アクションにて Python バージョン 3.4 を選択していた場合、リファレンスで例示されている Python コードではエラーが発生します。

https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/actions-reference/scripting#runpythonscript

スクリプト アクションでの変数の操作

スクリプト アクションで変数を宣言し、Power Automate で結果を返すには、次のコマンドを使用します。
Python スクリプトは、新しい変数を宣言するために特別な表記を必要としません。 Python スクリプトを実行するアクションから値を返すには、印刷関数を使用します。

Python(Microsoft リファレンスより引用)
variableName = "variableValue"
print variableName

具体的には、以下の様な挙動となります。

Python 2.7
# どちらも出力可能
print("hoge")
print "hoge"

# 出力
hoge

Python 3.4
# 出力可能
print("hoge")
# エラー SyntaxError: invalid syntax
print "hoge"

# 出力
hoge

print の仕様

print の扱いは Python 2.7 と 3.4 で大きく異なります。

2.7 では文(statement)として扱われ、print "hoge" と記載します。

https://docs.python.org/ja/2.7/reference/simple_stmts.html?highlight=print#the-print-statement

一方、3.4 では関数であり、print("hoge") となります。

https://docs.python.org/3.4/library/functions.html?highlight=print#print

このため、Python 3.4 では print "hoge" を使用するとエラーが発生します。

エラーログの取得方法

コードを記入した後、デフォルトだとエラー出力が確認不可な状態になっています。
悲しいことに、Python コード内でエラーが起きても、フローは停止せずにそのまま進行します。

下図の設定ではが結果として出力されます。
複雑な処理をしていた場合、が仕様通りであるのか、エラーが発生により処理が中断された結果なのか判断が困難です。

アクション詳細画面 初期状態
実行結果

このように、設定するとエラー発生時にログが別の変数に出力されます。

アクション詳細画面 エラー出力設定
エラーログ

if アクションと組み合わせて、例外処理を実装可能です。

ここまでするならノーコードではなく Python で全部作った方が楽なのでは?

エラーのキャッチ方法
ifアクションの設定

Discussion