将 Python 库导入 SQL Server

Posted

技术标签:

【中文标题】将 Python 库导入 SQL Server【英文标题】:Importing Python Libraries to SQL Server 【发布时间】:2019-11-06 13:51:16 【问题描述】:

我试图在我的 SQL Server Python 脚本中“导入日期查找器”,但由于某种原因它不起作用。其他库(例如 Pandas)似乎工作得很好。

我在 Python 中尝试过以下脚本;

 import sqlmlutils  
 connection = sqlmlutils.ConnectionInfo(server="xxx", database="xxx")
 sqlmlutils.SQLPackageManager(connection).install("datefinder")

并收到以下错误信息;

MSSQLDatabaseException:(20009,b'DB-Lib 错误消息 20009,严重性 9:\n无法连接: Adaptive Server 不可用或不可用 存在 (xxx\xxx)\n')

当我尝试在 SQL Server 中运行我的脚本时,出现以下错误;

消息 39004,级别 16,状态 20,第 1 行出现“Python”脚本错误 在使用 HRESULT 执行“sp_execute_external_script”期间 0x80004004。 Msg 39019, Level 16, State 2, Line 1 外部脚本 发生错误:

执行错误。检查输出以获取更多信息。追溯 (最近一次通话最后):文件“”,第 5 行,在文件中 "C:\PROGRA~1\MICROS~4\MSSQL1~1.DEV\MSSQL\EXTENS~1\DEV201701\64B0BBDF-3497-42E2-8C54-38CA1EA8CD85\sqlindb.py", 第 37 行,在变换中 import datefinder ImportError: No module named 'datefinder'

SqlSatelliteCall 错误:执行错误。检查输出以获取更多信息 信息。

【问题讨论】:

【参考方案1】:

https://thomaslarock.com/2018/05/adding-python-packages-to-sql-server-2017/

我能找到的最好的解释!

EXEC sp_execute_external_script
  @language =N'Python',
  @script=N'import sys; print("\n".join(sys.path))'

让您检索 SQL Server 使用的 python 环境的路径:

C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER2017\PYTHON_SERVICES\lib\site-packages\setuptools-27.2.0-py3.5.egg

打开命令行,向下导航到您的PYTHON_SERVICES/Scripts 目录。 从那里拨打pip install datefinder 您需要有权执行此操作。

【讨论】:

如果此时出现 SSL 错误,那是因为您的 SQL Server 计算机没有安装 SSL。安装 OpenSSL 对某些人来说效果很好。

以上是关于将 Python 库导入 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

每次我从 Python 库路径调用 .egg 时,AWS Glue 作业都会崩溃

sql Server数据库如何将一个库中的数据导入另一个库中

sql Server数据库如何将一个库中的数据导入另一个库中

python怎么导入库包?

SQL数据导入/导出,操作表记录,查询及匹配条件

Database基础:SQL数据导入/导出 操作表记录查询及匹配条件