簡體   English   中英

在 Heroku 上安裝 PyODBC 時找不到 sql.h

[英]sql.h not found when installing PyODBC on Heroku

我正在嘗試在 Heroku 上安裝 PyODBC,但出現fatal error: sql.h: No such file or directory pip 運行時日志中fatal error: sql.h: No such file or directory 我該如何解決這個錯誤?

要跟進以下答案...

Ubuntu 示例:

sudo apt-get install unixodbc unixodbc-dev

CentOS 示例:

sudo yum install unixODBC-devel

Fedora 示例:

sudo dnf install unixODBC-devel

在 Windows 上:

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=yourserver.yourcompany.com;DATABASE=yourdb;UID=user;PWD=password')

在 Linux 上:

conn = pyodbc.connect('DRIVER={FreeTDS};SERVER=yourserver.yourcompany.com;PORT=1433;DATABASE=yourdb;UID=user;PWD=password;TDS_VERSION=7.2')

您可以先添加 Heroku 構建包來預安裝所需的 apt 包

heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt

Aptfile添加到您的根目錄和存儲庫中

unixodbc
unixodbc-dev
python-pyodbc
libsqliteodbc

它將安裝您在 Heroku 上使用 python 中的pyodbcaioodbc軟件包所需的一切

您需要 unixODBC 開發包。 我不知道你使用的是什么發行版,但你可以谷歌它並從源代碼構建。

其他答案或多或少是正確的; 您缺少操作系統的unixodbc-dev[el]軟件包; 這就是pip從源代碼構建pyodbc需要的。

然而,一個更簡單的選擇是通過系統包管理器安裝pyodbc 例如,在 Debian/Ubuntu 上,這將是apt-get install python-pyodbc 由於pyodbc有很多已編譯的組件並且與 UnixODBC 操作系統級別的包有大量接口,因此它可能更適合系統包而不是 Python/pip 安裝的包。

如果您正在編寫用於分發的代碼,您仍然可以將它列為您的requirements.txt文件中的依賴項,但通過系統 PM 安裝它通常會更容易。

在項目的根目錄中創建名為Aptfile的文件。 該文件的內容應為:

unixodbc
unixodbc-dev
python-pyodbc

在命令提示符/ shell上傳遞此命令:

**heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt**

完成上述步驟后,提交存儲庫,然后使用它

git push heroku master

我最近在 Heroku 中看到了這個錯誤。 為了解決這個問題,我采取了以下步驟:

  1. Apt File添加到根文件夾,內容如下: unixodbc unixodbc-dev python-pyodbc libsqliteodbc

  2. 承諾

  3. 運行heroku buildpacks:clear

  4. 運行heroku buildpacks:add --index 1 heroku-community/apt

  5. 推送到 Heroku

對我來說,問題是我之前為 python 安裝了 buildpack,這是不需要的。 通過運行heroku buildpacks:clear我刪除了所有不需要的 buildpacka,然后添加回我需要的。 因此,如果您確實按照這些步驟操作,請務必記下您需要的構建包。 要查看構建包,您在執行這些步驟之前運行了heroku buildpacks

您的機器上沒有所需的 ODBC 頭文件。 您需要運行以下命令才能安裝 g++

yum install unixODBC-devel

RedHat/CentOS: dnf install -y unixODBC-devel以及 unixODBC 安裝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM