问题描述
在使用Azure Function创建新的Python Function时,使用MySQLdb连接数据库时候出现 ModuleNotFoundError: No module named 'MySQLdb' ,但是 Kudu (https://yourappservicename.scm.chinacloudsites.cn/ ,Azure Funciton App, App Service高级管理工具 )通过查看Function App中Python Site-Package,可以发现此模块,但是为什么还是出现不能加载模块的错误呢?
问题分析
查看当前使用的Python版本为3.8,所以进入3.8版本目录查看,发现没有pymysql模块。
网上搜索 Python 3 和 pymysql 关键字,发现 Python 3 不支持了mysqlbd模块。 而是使用pymysql模块代替。
Python3出现"No module named 'MySQLdb'"问题-以及使用PyMySQL连接数据库 : https://www.cnblogs.com/kevingrace/p/9721478.html
在 python2 中,使用 pip install mysql-python 进行安装连接MySQL的库,使用时 import MySQLdb 进行使用;
在 python3 中,改变了连接库,改为了 pymysql 库,使用pip install pymysql 进行安装,直接导入即可使用;
解决方法
使用了pymysql模块,并在代码添加了这个pymysql.install_as_MySQLdb()内容,可以成功访问到mysql 。
import pymysql
pymysql.install_as_MySQLdb()
参考资料
Troubleshoot Python errors in Azure Functions:https://docs.microsoft.com/en-us/azure/azure-functions/recover-python-functions?tabs=vscode#troubleshoot-modulenotfounderror
Troubleshoot ModuleNotFoundError
This section helps you troubleshoot module-related errors in your Python function app. These errors typically result in the following Azure Functions error message:
Exception: ModuleNotFoundError: No module named 'module_name'.
This error occurs when a Python function app fails to load a Python module. The root cause for this error is one of the following issues:
[END]