我们当前正在 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```
错误:命令“g++”失败:没有这样的文件或目录[输出结束] 注意:此错误源自子进程,并且可能不是 点的问题。错误:pyodbc 构建轮子失败
安装
pyodbc
时会发生错误,因此系统没有构建 pyodbc 所需的编译器 (g++)。
我同意@Pratik Lad 的评论,
您可以尝试以下方法:
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.