在Azure上发布webjob-python3.6

webjob是微软云一个运行后台代码的好工具,最近写了段在接口中获取数据存在sqlserver数据库的Python代码,正好符合发布webjob。但是对于小白的我过程有点曲折。。
先说下我的小代码块的基本情况:
python3.6(开始是用2,但是由于马上停止运维,会不支持,换成了3)
连接的azure sql.

首先就是python 的依赖的问题。
因为要存在数据库中所以跟sqlserver数据库的连接依赖肯定是必要的。
一开始我用的是pymssql,在本地试了之后不管是连接本地数据库还是azure sql 都运行良好。但是当我发布到webjob,第一个错误就是找不到依赖。
我尝试过在cmd上下载,但是并没有用,还是报错,然后在谷歌上看到一个人说可以在本地用一个隔离的环境,下载好依赖,然后打包跟程序一起上传到webjob,然后在程序里引用依赖的地方,告诉程序去哪里找。我也试了,好像是访问到了,但是还是在报错,时间挺久了已经记不太清了。需要的小伙伴自行去百度。
说一下我最终是怎么解决依赖的问题的把。
找到你的资源里的开发工具下的扩展,点击添加,选择你的Python版本,同意下面的法律条款,就可以添加自己的Python版本。在这里插入图片描述
添加成功后,在高级工具的kudu里就可以看到了,如下图

红框中就是物品红框中就是我添加的python3.6,点击进入再用下面的cmd,pip下载依赖,然后最关键的是,你要告诉系统你是要用这个版本的Python运行的。这个也很简单,就是在你的项目文件夹里新建一个cmd文件,如下。就告诉系统我这个文件要哪个路径的Python运行就可以,webjob是根据文件类型来运行的,cmd文件的优先级比py文件的优先级高,所以会先运行cmd文件.这样就解决了依赖的问题。

D:\home\Python364x64\python.exe XXX.py

然后讲讲连接数据库遇到的坑吧。
虽然依赖生效了,但是用pymssql连接还是会报错,报错截图现在已经找不到了,不重要了!重要的是,我从国内为数不多的帖子和部分国外的帖子中看到很多人都说要用pyodbc连接。说连接azure sql官方就给的是pyodbc,但我本地连azure sql也连的很好呀。但是没办法只能试一试。反正换成pyodbc的过程也有点曲折。。。网上各种连接语句,但是python-webjob连接azure sql的我却一个也没找到,经过一番尝试,下面是成功连接的语句:

db = pyodbc.connect(r'DRIVER={SQL Server};SERVER=XXX.database.chinacloudapi.cn,1433;DATABASE=XXX;UID=username@servername;PWD=XXX')

改完之后没想到发布上去异常顺利。
tips:特别强调一点:一定要把数据库的排序规则改成跟默认排序规则一样!!否则会报错。azure sql的默认排序规则可以在属性里面可以查看。
目前还没有找到别的方法解决,哪位大佬知道的话,欢迎留言
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值