【问题标题】:Azure Linux Python Webapp ImportError: libodbc.so.2 cannot open shared object fileAzure Linux Python Webapp ImportError:libodbc.so.2 无法打开共享对象文件
【发布时间】:2019-04-30 00:33:36
【问题描述】:

构建了一个可以在我本地运行时运行的烧瓶应用程序(Windows 10)。通过本地 git 部署成功,但是当我尝试访问 url 时,我看到的都是 Application Error。因此,当我检查日志流时,它显示应用程序在尝试导入 pyodbc 时出现故障,并出现错误“ImportError libodbc.so.2:无法打开共享对象文件”。

所以我通过 SSH 连接到容器中,激活了虚拟环境,调用了 open python 并调用了 import pyodbc,它就可以工作了。现在我很困惑为什么当我尝试访问 URL 时它会失败,而当我自己 SSH 并导入 pyodbc 时它会起作用。我不确定我是否提供了足够的细节,所以如果我应该添加任何其他内容,请告诉我。

发生了什么事?如何修复我的容器以便它可以导入 pyodbc?

【问题讨论】:

    标签: python azure odbc


    【解决方案1】:

    @user152836 - 请告诉我们以下信息以便进一步调试:

    1. 您在 Web 应用程序中使用的 python 版本?原生还是扩展?
    2. 您的网络应用的操作系统?

    如果您安装了 python 扩展,问题可能是 azure web 应用程序使用没有 pyodbc 驱动程序的默认 python。为了使用 python 扩展,你可以关注这个线程 - install odbc driver to azure app service

    您还需要导出相关的 LD LIBRARY 路径并将其添加到您的 bash 配置文件中,如下例所示: Python executable not finding libpython shared library

    如果以上两条建议都不行,也可以查看这个链接:pyodbc - error while running application within a container

    【讨论】:

    • 我决定只构建一个自定义 docker 容器,在容器中安装必要的驱动程序并部署容器。
    猜你喜欢
    • 2017-05-21
    • 2023-02-07
    • 2011-12-23
    • 2015-09-28
    • 2012-12-15
    • 2021-08-11
    • 2013-04-21
    • 2013-05-05
    • 1970-01-01
    相关资源
    最近更新 更多