python - 使用 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
解决方案
睡个好觉可以创造奇迹。这是我解决这个问题的方法。
- 当我在上面说明 scipt 在 commnand 提示符下运行正常时,这实际上是 Anaconda 提示符,而不是正常的 Windows CMD 提示符。
- 使用此命令在正常的 Windows 提示符下运行“C:\ProgramData\Miniconda3\python.exe TestScript.py ”,程序失败,并显示一条错误消息,表明它无法找到 pandas
- 因此,我创建了一个批处理文件,它首先加载 anaconda 提示符,然后调用脚本。这是批处理文件:-
@echo off REM 一次性启动 Anaconda 提示符和 python 程序的名称 %windir%\System32\cmd.exe /C "C:\ProgramData\Miniconda3\Scripts\activate.bat C:\ProgramData\Miniconda3 && python .exe 测试脚本.py"
- 然后将上述批处理文件作为 SSIS 任务中的可执行文件提供,一切正常
推荐阅读
- floating-point - D3DXVECTOR3 类中的等式运算符
- jwt - 验证 keycloak 令牌的最低要求是什么?
- android - 我可以像 Waze 和 Google Map 那样将我的地图应用程序添加到“Android Auto”吗?
- android - ListAdapter with DiffUtil.ItemCallback always considers objects the same
- ubuntu - 如何解决 Ubuntu 32 位中“gcc”链接时出现的错误?
- ios - 未调用位置权限弹出窗口的回调
- r - R:将 POSIXct 格式转换为 Javascript JSON 日期格式
- python-3.x - api.foursquare.com/v2/venues/搜索python数据框中的每个坐标
- java - 按值集的大小对 HashMap 进行排序
- python - 调用 super().__str__ 似乎在列表子类中调用 self.__repr__