【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?
问题描述
在App Service中运行Python编写的定时任务,需要使用pymssql连接到数据库,但是发现使用 python.exe -m pip install --upgrade -r requirements.txt -t D:\home\site\wwwroot\pymodules。requirements.txt中包含pymssql库。安装时候出现错误消息: Failed to build pymssql.

问题答案
因为App Service上无法直接编译Python Package为Wheel文件,所以需要在本地编译好之后,上传到App Service中。使用PIP命令直接安装Wheel文件。操作步骤为:
1)从网络中下载 pymssql的wheel文件
在 https://pypi.org/project/pymssql/2.1.5/#files 找到对应 Python 版本的安装模块,如:pymssql-2.1.5-cp36-cp36m-win_amd64.whl,下载到本地,然后上传到App Service的D:\home\site\wwwroot目录。
可以直接将文件拖拽到这个目录下,操作如下:

2)在App Service的高级管理工具(Kudu)中进行安装
进入D:\home\python364x64目录,执行这个命令进行安装 pip install D:\home\site\wwwroot\pymssql-2.1.5-cp36-cp36m-win_amd64.whl

3)在Python的package文件夹中查看是否安装成功
安装成功之后,可以在这个目录D:\home\python364x64\Lib\site-packages查看到安装的包.

需要注意,执行Python的Webjob时,需要使用 .cmd 来启动 Python,指定自定义后的Python.exe的路径。

附录:pymssql 连接数据库代码
import time,datetime,dingtalk.api,pyodbc
from sqlalchemy import create_engine
import pandas as pd server="xxxx.database.windows.net"
database='xxx' #数据库名称
user="xxxx" #登陆账号
password="xxxxxxxxxxxxx" #账号密码
driver= '{ODBC Driver 17 for SQL Server}' conn=pyodbc.connect('DRIVER='+driver+';SERVER=tcp:'+server+';PORT=1433;DATABASE='+database+';UID='+user+';PWD='+ password,encoding = 'utf-8')
sqlcmd="SELECT * FROM dbo.xxxxxxxxx" #sql语句 dataset=get_df_from_db_1(sqlcmd) S_sheet =[]
S_sheet =pd.DataFrame(columns=('xxx','xxx','xxx'))
### ...
### ...
S_sheet=S_sheet.reset_index(drop=True) #存入数据库
conn_engine='mssql+pyodbc://'+user+':'+password+'@'+server+'/'+database+'?driver=ODBC Driver 17 for SQL Server'
engine = create_engine(conn_engine)
pd.io.sql.to_sql(S_sheet, 'xxx', con=engine, index=False, if_exists='append')
print('Data:%s'%len(S_sheet))
conn.close()
参考资料
pymssql 2.1.5:https://pypi.org/project/pymssql/2.1.5/#files
Running Python Webjob on Azure App Services using non-default python version : https://azureossd.github.io/2016/12/09/running-python-webjob-on-azure-app-services-using-non-default-python-version/
【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?的更多相关文章
- 【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
问题情形 当应用在Azure 应用服务App Service中运行时,有时候出现CPU,Memory很高,但是没有明显的5XX错误和异常日志,有时就是有异常但是也不能明确的指出具体的代码错误.当面临这 ...
- 【Azure 应用服务】App Service中,为Java应用配置自定义错误页面,禁用DELETE, PUT方法
问题定义 使用Azure应用服务(App Service),部署Java应用,使用Tomcat容器,如何自定义错误页面呢?同时禁用DELETE, PUT方法 解决办法 如何自定义错误页面呢?需要在 J ...
- 【Azure 应用服务】Python flask 应用部署在Aure App Service中作为一个子项目时,解决遇见的404 Not Found问题
问题描述 在成功的部署Python flask应用到App Service (Windows)后,如果需要把当前项目(如:hiflask)作为一个子项目(子站点),把web.config文件从wwwr ...
- 【应用服务 App Service】Azure App Service 中如何安装mcrypt - PHP
问题描述 Azure App Service (应用服务)如何安装PHP的扩展 mcrypt(mcrypt 是php里面重要的加密支持扩展库) 准备条件 创建App Service, Runtime ...
- 【应用服务 App Service】在Azure App Service中使用WebSocket - PHP的问题 - 如何使用和调用
问题描述 在Azure App Service中,有对.Net,Java的WebSocket支持的示例代码,但是没有成功的PHP代码. 以下的步骤则是如何基于Azure App Service实现PH ...
- 【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决
问题情形 当访问部署在Azure App Service中的应用返回 "The remote name could not be resolved: ''xxxxxx.com'" ...
- 【应用服务 App Service】App Service证书导入,使用Key Vault中的证书
问题描述 正常情况下,如果需要为应用服务安装SSL证书,可以在证书准备好的情况,通过门户上传即可,详细步骤可以参考微软官方文档(在 Azure 应用服务中添加 TLS/SSL 证书:https://d ...
- 【应用服务 App Service】App Service中抓取网络日志
问题描述 众所周知,Azure App Service是一种PaaS服务,也就是说,IaaS层面的所有内容都由平台维护,所以使用App Service的我们根本无法触碰到远行程序的虚拟机(VM), 所 ...
- 【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
测试App Service是否可以访问其他DNS 当应用服务(Azure App Service)创建完成后,想通过ping命令来查看是否可以访问其他站点或解析DNS,但是发现ping命令无法使用.这 ...
随机推荐
- vue项目梳理
vue实例 vue2.x中创建vue实例,挂载到dom节点 点击查详情 <div id="vue_det"> <h1>site : {{site}}< ...
- JAVA 之 每日一记 之 算法 ( 长按键入 )
题目详解: 你的朋友正在使用键盘输入他的名字 name.偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次. 你将会检查键盘输入的字符 typed.如果它对应的可能是你的朋友的 ...
- Vuex的同步异步存值取值
1. vue中各个组件之间传值 1.父子组件 父组件-->子组件,通过子组件的自定义属性:props 子组件-->父组件,通过自定义事件:this.$emit('事件名',参数1,参数2, ...
- 密码学系列之:bcrypt加密算法详解
目录 简介 bcrypt的工作原理 bcrypt算法实现 bcrypt hash的结构 hash的历史 简介 今天要给大家介绍的一种加密算法叫做bcrypt, bcrypt是由Niels Provos ...
- visual studio下载速度为0解决方法
步骤: 一,更改网络设置 二,cmd刷新dns 一,更改网络设置 1,点开控制面板,打开网络和Internet 2,点击网络和共享中心 3,点击你连接的网络,那个是你连接的WIFI名字 4,点击属性 ...
- CentOS linux系统将UTC时间修改为CST时间
1.编辑时间配置文件 1 2 3 4 # vi /etc/sysconfig/clock ZONE="Asia/Shanghai" UTC=false ...
- spark相关介绍-提取hive表(一)
本文环境说明 centos服务器 jupyter的scala核spylon-kernel spark-2.4.0 scala-2.11.12 hadoop-2.6.0 本文主要内容 spark读取hi ...
- 什么是 baseline 和 benchmark
baseline 一个算法被称为 baseline 算法说明这个比目前这个算法还差的已经不能接受了,方法有革命性的创新点可以挖掘,且存在巨大提升空间和超越benchmark的潜力,只是由于发展初期导致 ...
- dede调用文章内第一张原始图片(非缩略图)的实现方法
第一步,修改include/extend.func.php文件,最下面插入函数,查询的是文章附加表,如需查询图片集什么的,改表名即可 //取原图地址 function GetFirstImg($arc ...
- Linux系列(13) - CentOs 8 配置静态IP
step-1 vim etho的配置文件 [root#localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 step-2 新增修改以下 ...