web-dev-qa-db-ja.com

SSISプロセス実行タスクPythonスクリプト

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プロセス実行タスクのイメージです。

this is an image of the SSIS Execute Process Task

エラーメッセージ:

    [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".
9
Elad L.

pythonスクリプトへのファイルパスにスペースがありましたか?スクリプトプロセスの実行で引数としてスペースを含むパスを渡そうとしたときに同じエラーが発生しました。解決策は引数を入力することでした引用符付き。

11
ZBlaze

プロセスがSSISパッケージのExecute Process Taskステップから起動されたとき、実行可能ファイルと同じフォルダーから実行されていません(.bat.py.exeなど)あります。ファイルの直接実行と異なる点。また、実行可能ファイルが同じフォルダ内の他のファイルと連携している場合は特に重要です。

ですから、SSISパッケージのExecute Process Taskステップの作業フォルダープロパティを追加で指定する必要があります。

スクリーンショットでは作業ディレクトリプロパティ値は空です。そこにC:\Users\bla\blalba\bla\gender-guesser-0.4.0\test\を置きます

1
Anton Arkhipkin