函数计算 Python 连接 SQL Server 小结

函数计算的PythonJoin SqlServer摘要

将 SQL Server 启动于 1433 端口,并设定 SA 账户密码为 Codelife.me

使用 homebrew 安装 mssql 客户端 sqlcmd。

创建测试数据库 TestDB。

创建一张 Inventory 表,并参入一行测试数据。

验证一下插入结果并退出。

准备一个测试函数

编写一个测试函数 index.py。该函数连接 mac 宿主机docker.for.mac.host.internal (这里不能是 localhost,因为 fc-docker 会将函数运行在 container 内部)的 SQL Server 服务。执行一个查询,并把结果返回出来。

最新版的 pymssql

创建一个空目录,存放上 index.py 文件。将命令会话的当前路径切换到 index.py 所在的目录,然后执行

这里使用了 fc-docker 提供的 python3.6 的模拟环境:aliyunfc/runtime-python3.6

第一行启动了一个不会退出的 docker container,第二行使用 docker exec 进入这个 container 安装依赖,最后一行退出该 container。因为本地路径 $(pwd) 被挂载到 container 内部的 /code 目录,所以 container 退出以后 /code 目录的内容还会保留在本地当前路径下。

pip 通过 -t 参数将 wheel 包安装在 /code 目录下。

执行上面命令可以顺利返回结果。对于不需要使用老本 pymssql 的用户看到这里就可以结束了。

早期版本的 pymssql

对于早于 2.1.3 版本的 pymssql, pip install 会触发源码编译安装,对于这种情况,需要安装编译时依赖的 freetds-dev,以及运行时依赖的 libsybdb5。编译时依赖可以直接安装在系统目录里,运行时依赖必须安装在本地目录下。

第一行启动一个 container,第十行停止并自动删除该 container。

第二行至第三行将运行时依赖 libsybdb5 安装于本地目录。

将动态链接库 libsybdb.so.5 链接到目录 /code/lib 目录下,因为该目录默认配置到了环境变量 LD_LIBRARY_PATH 下。

将 freetds-dev 和 cython 安装到系统目录,用于 pymssql 编译安装,因为运行时 pymssql 不需要这两个库,所以无需安装在本地目录

安装2.1.3版本的pymssql之后,从2.1.4版本开始就不再需要安装源代码了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181124A0648B00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券