SSISプロセス実行タスクからpython scripを実行しようとしています。私はこれを行う方法のすべてのチュートリアルに従いましたが、スクリプトは最初から失敗しています。 SSISからpythonスクリプトを実行すると、完全に実行されます。
これは私のPythonスクリプトです。
import sys
import gender_guesser.detector as gender
import xml.etree.cElementTree as ET
from xml.etree.ElementTree import ParseError
try:
input("Press Enter to continue...")
except SyntaxError:
pass
tree = ET.parse('user.xml')
root = tree.getroot()
for child_of_root in root:
for attr in child_of_root:
if attr.tag == 'first_name':
upperName = "%s%s" % (attr.text[0].upper(), attr.text[1:])
print attr.tag,upperName
d = gender.Detector()
gen = d.get_gender(upperName)
print gen
attr.text= gen
tree = ET.ElementTree(root)
tree.write("user1.xml")
これは、SSISプロセス実行タスクのイメージです。
エラーメッセージ:
[Execute Process Task] Error:
In Executing "C:\Python27\python.exe" "C:\Users\bla\blalba\bla\gender-guesser-0.4.0\test\genderTest.py " at "", The process exit code was "1" while the expected was "0".
pythonスクリプトへのファイルパスにスペースがありましたか?スクリプトプロセスの実行で引数としてスペースを含むパスを渡そうとしたときに同じエラーが発生しました。解決策は引数を入力することでした引用符付き。
プロセスがSSISパッケージのExecute Process Task
ステップから起動されたとき、実行可能ファイルと同じフォルダーから実行されていません(.bat
、.py
、.exe
など)あります。ファイルの直接実行と異なる点。また、実行可能ファイルが同じフォルダ内の他のファイルと連携している場合は特に重要です。
ですから、SSISパッケージのExecute Process Task
ステップの作業フォルダープロパティを追加で指定する必要があります。
スクリーンショットでは作業ディレクトリプロパティ値は空です。そこにC:\Users\bla\blalba\bla\gender-guesser-0.4.0\test\
を置きます