无法使用托管身份通过 pymssql 对 SQL 数据库进行身份验证

问题描述 投票:0回答:1

我们当前正在 Azure 自定义部署期间使用用户名和密码执行 SQL 查询(以创建表并插入示例数据)。

流程如下:我们有一个 Bicep 文件,该文件调用 shell 脚本,该脚本从requirements.txt 安装依赖项。然后,该脚本会触发一个连接到 SQL Server 并执行 SQL 查询的 Python 文件。我们为此使用 pymssql,并且它按预期工作。但是,我们需要改用托管身份而不是用户名和密码。由于 pymssql 不支持托管身份,我们正在尝试 pyodbc。但是,当尝试通过requirements.txt以相同的方式安装pyodbc时,我们遇到以下错误:

33.28       error: command 'g++' failed: No such file or directory
33.28       [end of output]
33.28
33.28   note: This error originates from a subprocess, and is likely not a problem with pip.
33.28   ERROR: Failed building wheel for pyodbc
33.28 Successfully built quart-session
33.28 Failed to build pyodbc
33.29 ERROR: Could not build wheels for pyodbc, which is required to install pyproject.toml-based projects
33.46
33.46 [notice] A new release of pip is available: 24.0 -> 24.3.1
33.46 [notice] To update, run: pip install --upgrade pip```
python python-3.x azure pyodbc pymssql
1个回答
0
投票

错误:命令“g++”失败:没有这样的文件或目录[输出结束] 注意:此错误源自子进程,并且可能不是 点的问题。错误:pyodbc 构建轮子失败

安装

pyodbc
时会发生错误,因此系统没有构建 pyodbc 所需的编译器 (g++)。 我同意@Pratik Lad 的评论,

您可以尝试以下方法:

  • 您可以使用基于Linux的Azure VM
  • 运行 shell 脚本来设置并安装requirements.txt 中的依赖项。

pyodbc 需要 unixODBC 驱动程序管理器,您可以使用以下命令安装它们:

!apt install unixodbc-dev
!pip install pyodbc

结果:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
unixodbc-dev is already the newest version (2.3.9-5ubuntu0.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Requirement already satisfied: pyodbc in /databricks/python3/lib/python3.11/site-packages (4.0.38)
Note: you may need to restart the kernel using %restart_python or dbutils.library.restartPython() to use updated packages.

© www.soinside.com 2019 - 2024. All rights reserved.