将 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数据库如何将一个库中的数据导入另一个库中