【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?
问题描述
在App Service中运行Pytho ad8 n编写的定时任务,需要使用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 应用服务】VS2019发布应用到正在运行的App Service时失败问题的解决
- 【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
- 【Azure 应用服务】App Service For Linux 中安装paping, 用于验证从App Service向外请求的网络连通性
- 【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
- 【Azure 应用服务】Python flask 应用部署在Aure App Service 遇见的 3 个问题
- 【Azure 应用服务】[App Service For Linux(Function) ] Python ModuleNotFoundError: No module named 'MySQLdb'
- 【Azure 应用服务】App Service站点Header头中的中文信息显示乱码?当下载文件时,文件名也是乱码?
- 【Azure 应用服务】App Service 默认开放端口说明, 如何禁用Web app的端口号?
- 【Azure 应用服务】App Service多个部署槽(Slot)之间,设置Traffic百分比后,如何来判断请求是由那一个槽(Slot)来进行处理呢?
- 【应用服务 App Service】在Azure Web App的部署文件中,是否可以限制某些文件无法被访问?(如json)
- 使用Python编写免安装运行时、以Windows后台服务形式运行的WEB服务器
- 【Azure 应用服务】App Service中抓取 Web Job 的 DUMP 办法
- 【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
- 【Azure 应用服务】App Service服务无法启动,打开Kudu站点,App Service Editor 页面均抛出:The service is unavailable
- 【Azure 应用服务】App Service 进入后台管理(Kudu)页面,因为文件过多而显示不全的问题
- 【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php
- 【Azure 应用服务】App Service下部署的应用报错 Out of Memory
- 【Azure 应用服务】App Service中,为Java应用配置自定义错误页面,禁用DELETE, PUT方法
- 0016 python django 05 安装django 创建项目 创建应用/app 启动服务 本地访问 外部访问 结束服务
- 【Azure 应用服务】App Service for Container中配置与ACR(Azure Container Registry)的RABC权限