【发布时间】:2021-01-07 23:54:04
【问题描述】:
我需要从 SSIS 中运行一个 .py python 脚本。但是我不想将我的 .py 文件转换为 .bat 或 .exe,因为我的脚本使用了多进程模块并且当我将它转换为.bat 或 .exe 并通过 SSIS 包运行它,它会生成几十个进程,当我通过网络搜索时,这可能是因为多处理....因此我不想将我的文件转换为这些可执行文件并想要直接从 SSIS 中运行我的 .py 文件。
SSIS 执行任务配置如下:
但我收到此错误:
[执行进程任务]错误:执行中 "C:\Users\AppData\Local\Continuum\anaconda3\pythonw.exe" ""D:\SLA\SLA_Report\temp.py"" at "D:\SLA\SLA_Report", 进程退出 代码为“1”,而预期为“0”。
代码已在 Spyder 中成功执行,因此代码中没有错误。
此外,当我搜索堆栈溢出和this post 时,我已经指定了执行进程任务的“工作文件夹属性”,并且我的目录中没有空间。
因此,我们将不胜感激。
编辑:
SSIS的账号如下:
【问题讨论】:
-
D 是实际驱动器、映射网络驱动器还是替代驱动器?当 SSIS 包运行时,什么帐户在运行 SSIS 包?
-
另外,将标准输出/错误捕获到变量中,然后您可以看到任务发出的内容(如果它在输出窗口中不可用)
-
MsDtsServer140 虚拟用户用于许可内容。当你运行包时——你是怎么做的?双击?创建 SQL 代理作业?只需命令行
dtexec Package5.dtsx? -
当您单击播放图标时,您将在 Visual Studio Data Tools 中运行该包,这意味着您以您的身份登录。这意味着您访问
C:\Users\mpy\AppData\Local\Continuum\anaconda3\pythonw.exe不应该存在权限问题,如果这是在服务器上,可能会带来挑战 -
从 pythonw 更改为 python。有没有可能情况完全不同?