【问题标题】:How to access ODBC Driver on Azure App service如何访问 Azure 应用服务上的 ODBC 驱动程序
【发布时间】:2020-11-02 05:01:33
【问题描述】:

我正在尝试在 Linux 中的 Azure 应用服务上运行一个 Django (3.0) 应用,该应用连接到一个 Azure SQL 数据库。在我的暂存应用服务实例中,这可以完美运行,但是,当我在不同的 Azure 帐户上设置我的生产实例时,我的 Django 应用程序无法再访问数据库。

当我将 ODBC 驱动程序 17 硬编码到数据库设置中时,我的 Oryx 构建日志中出现此错误:

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")

当我切换到here建议的非硬编码版本时,我收到了这个错误:

    'driver': sorted(pyodbc.drivers()).pop(),
IndexError: pop from empty list

如何在 Azure 应用服务上安装 ODBC 驱动程序?

编辑:我没有使用 Docker 部署选项。我直接从 Github 部署源代码。

【问题讨论】:

  • 嗨。谢谢你——不幸的是,我没有使用 Docker 部署选项。我正在使用源代码部署选项,因此无法复制这些说明。
  • 嗯,简单的答案是您不必安装 ODBC 驱动程序,因为所有软件包都已安装。您是否检查并比较了工作实例和非工作实例之间的所有应用服务配置?

标签: python django azure odbc oryx


【解决方案1】:

我已经测试过了,它对我有用。

打开 ssh 到您的网络应用并运行以下命令:-

  1. apt-get update
  1. apt-get install g++
  1. apt-get install unixodbc-dev
  1. pip install pyodbc

然后我们可以使用隐私模式,或者清除缓存后访问网站。你可以尝试多刷新几次,你会发现网站恢复正常了。

之前说你可以试试用venv,经过我测试发现不需要用。按照我的步骤运行命令,你的webapp就可以了。

【讨论】:

    猜你喜欢
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2017-07-12
    相关资源
    最近更新 更多