函数计算的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版本开始就不再需要安装源代码了。
领取专属 10元无门槛券
私享最新 技术干货