SSIS 执行进程任务 Python 脚本

SSIS Execute Process Task Python script

我正在尝试从 SSIS 执行进程任务执行 python 脚本。我遵循了所有有关如何执行此操作的教程,但脚本从一开始就失败了。当我从 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\