【问题标题】:Problem using SSIS Execute Process task to run Python script which imports pandas使用 SSIS 执行进程任务运行导入熊猫的 Python 脚本时出现问题
【发布时间】:2020-10-28 00:09:58
【问题描述】:

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

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

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

Execute Process task settings

但是,当我在脚本中添加以下行时,

  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

【问题讨论】:

    标签: python pandas ssis


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 此外,此链接添加了一些有用的信息,说明为什么需要上述解决方法。 docs.conda.io/projects/conda/en/latest/user-guide/tasks/…
    • 我遇到了同样的错误,但我没有使用 Anaconda。而且,在我工作的地方,我无法使用命令提示符来测试代码。 :( 我要试试这个。
    猜你喜欢
    • 2013-12-10
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    相关资源
    最近更新 更多