Azure应用服务ImportError:libmysqlclient.so.18:无法打开共享对象文件:没有这样的文件或目录

时间:2018-12-24 19:14:58

标签: python mysql django azure azure-web-app-service

在具有Python的App Azure Linux上,Mysql模块似乎不起作用:

2018-12-24T19:11:38.215760010Z     import _mysql
2018-12-24T19:11:38.215763810Z ImportError: libmysqlclient.so.18: cannot 
                               open shared object file: No such file or directory
...
2018-12-24T19:11:27.536810347Z django.core.exceptions.ImproperlyConfigured: 
                               Error loading MySQLdb module.
2018-12-24T19:11:27.536813747Z Did you install mysqlclient?

要求:

django
mysqlclient

有没有人设法在azure Web应用程序上运行django?

3 个答案:

答案 0 :(得分:0)

这是一个常见错误。使用mysqlclient还需要安装本机依赖项:mysql客户端或与mysql兼容的mariadb客户端。为了最简单地解决这些问题,请将您的项目更改为使用mysql-connector-python而不是mysqlclient。您还必须更新设置,以便所有使用django.db.backends.mysql的数据库引擎都应更新为mysql.connector.django

答案 1 :(得分:0)

请尝试访问app service scm网站,找到pip位置,然后使用pip安装所需的模块。

答案 2 :(得分:0)

听起来您的Linux版Azure应用中没有安装mysql本机客户端库。

这里有两种构建自定义图像的情况。

  • 对于Debian或Ubuntu映像,请首先运行apt install libmysqlclient-dev以在您的Docker映像上预安装libmysqlclient.so
  • 对于Fedora或CentOS iamge,请先运行yum install mysql-libs以预安装相同的版本。

或者您可以直接使用现有的映像,该映像已从Azure容器注册表或DockerHub预安装了这些必需的库。