在Azure上部署python Azure函数时,获取未找到模块错误

时间:2019-07-25 17:40:12

标签: python azure azure-functions

我创建了一个Python Azure HttpTrigger函数,该函数也在本地执行。它在本地工作正常,但是当我在azure上部署Azure HttpTrigger函数时,出现以下错误:-

There was an error restoring dependencies. ERROR: cannot install pyodbc-4.0.25 dependency: binary dependencies without wheels are not supported. 
Use the --build-native-deps option to automatically build and configure the dependencies using a Docker container. More information at https://aka.ms/func-python-publish

我在requirement.txt file中添加了Pyodbc软件包。当python azure函数部署在azure上时,pyodbc安装在本地python路径上而不是.env路径中。

我已经选择了python解释器\.env\Scripts\python.ext,但是pyodbc软件包安装在本地python路径上。

我无法理解如何解决以上问题?如果有人知道解决方案,请告诉我。我想在天蓝色的功能上安装软件包。

1 个答案:

答案 0 :(得分:0)

我想您对如何在Azure函数应用程序中安装和使用Python第三方模块感到困惑。您可以参考我的工作步骤。

第1步:

导航到您的功能应用kudu url:$(element).perfectScrollbar({ minScrollbarLength: 40, maxScrollbarLength: 80 });

https://Your_APP_NAME.scm.azurewebsites.net/DebugConsole文件夹中运行以下命令(需要一些时间)

d:/home/site/wwwroot/<your function name>

第2步:

通过以下命令在python -m virtualenv myvenv 文件夹中加载环境。

env/Scripts

第3步:

您的外壳现在应该以(env)为前缀。

更新点

activate.bat

安装所需的内容

python -m pip install -U pip

第4步:

在您的代码中,更新sys.path以添加此venv:

python -m pip install MySQLdb <pyodbc>

然后通过下面的代码段连接到mysql db

import sys, os.path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), 'env/Lib/site-packages')))

此外,您还可以参考我之前的案例:Import module into Python Azure Function