首页 > 解决方案 > 使用 SSIS 执行进程任务运行导入熊猫的 Python 脚本时出现问题

问题描述

我正在尝试通过 SSIS 执行进程任务执行 python 脚本。在经历了所有常见的初期问题和随之而来的谷歌搜索之后,设法获得了一个基本脚本,如下所示:-

from tkinter import messagebox
messagebox.showinfo("Title", "Hello from Python script!")

该脚本名为TestScript.py,可从命令行正确运行。它还可以在具有以下 SSIS 设置的 SSIS 内正确运行:-

执行进程任务设置

但是,当我将以下行添加到脚本时,

  import pandas as pd

它失败并显示以下错误消息:-

[执行进程任务] 错误:在“C:\SFTP_Uploads\TTF_test”处执行“C:\ProgramData\Miniconda3\python.exe”“TestScript.py”时,进程退出代码为“1”,而预期为“0” ”。

显然问题与 pandas 导入有关,但我不确定为什么当脚本从命令行完美运行时会出现这种情况。

不确定去哪里,希望不是一个明显的问题。任何建议都非常感谢。

环境是Windows Server 2019上的SQL Server 2016;Python 3.8.3,熊猫 1.1.3

标签: pythonpandasssis

解决方案


睡个好觉可以创造奇迹。这是我解决这个问题的方法。

  1. 当我在上面说明 scipt 在 commnand 提示符下运行正常时,这实际上是 Anaconda 提示符,而不是正常的 Windows CMD 提示符。
  2. 使用此命令在正常的 Windows 提示符下运行“C:\ProgramData\Miniconda3\python.exe TestScript.py ”,程序失败,并显示一条错误消息,表明它无法找到 pandas
  3. 因此,我创建了一个批处理文件,它首先加载 anaconda 提示符,然后调用脚本。这是批处理文件:-

@echo off REM 一次性启动 Anaconda 提示符和 python 程序的名称 %windir%\System32\cmd.exe /C "C:\ProgramData\Miniconda3\Scripts\activate.bat C:\ProgramData\Miniconda3 && python .exe 测试脚本.py"

  1. 然后将上述批处理文件作为 SSIS 任务中的可执行文件提供,一切正常

推荐阅读