簡體   English   中英

Python.h: 沒有那個文件或目錄

[英]Python.h: No such file or directory

我最近在運行 Ubuntu 12.04 LTS 的 Macbook Pro 上安裝了用於 C++ 開發的 KDevelop 4。

我想在我的 C++ 代碼中嵌入 Python 應用程序。 為此,需要包含 Python.h 頭文件。 所以,我做到了。

#include <iostream>
#include <Python.h>

int main(int argc, char **argv) {
    Py_Initialize();
    return 0;
}

但是,在運行時,我收到了來自 IDE 的以下響應:

fatal error: Python.h: No such file or directory

但是,我很快就發現了問題。 我沒有下載 python-dev 包。 所以,我做到了。 我又跑了一次,但同樣的錯誤又出現了。 所以,我認為這一定是 KDevelop 沒有包含頭文件的問題。 因此,我將相關文件夾添加到包含路徑,KDevelop 立即通過刪除上面代碼中第二個包含語句下方的紅色下划線識別了這一點。

但是,問題仍然存在。 我犯了同樣的錯誤。 感謝你們提供的任何幫助或意見:-)

非常感謝。

編輯:我之前沒有提到的一些細節是 KDevelop 正在為我的項目使用 cmake。 我想我的問題發生的原因是因為 cmake 不知道適當的編譯器和鏈接器路徑。 對於為 cmake 設置正確路徑的任何幫助,我將不勝感激。

在您的 CMakeLists.txt 中,嘗試添加以下內容:

find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
target_link_libraries(<your exe or lib> ${PYTHON_LIBRARIES})

有關命令的詳細信息,請運行:

cmake --help-module FindPythonLibs
cmake --help-command find_package
cmake --help-command include_directories
cmake --help-command target_link_libraries
sudo apt-get install pythonX.X-dev

例如對於 3.8

sudo apt-get install python3.8-dev

謝謝 Cristianjs19 的評論。

原答案:

sudo apt-get install python2.7-dev

在“Python.h:沒有這樣的文件或目錄”問題上為我工作

您希望在編譯行中包含以下內容:

`python-config --cflags`

這在鏈接行上:

`python-config --ldflags`

很可能Python.h不在您的構建系統的包含路徑中。 您可以通過運行找到 Python.h 的位置

dpkg -L python-dev | grep Python.h

這還將驗證 python-dev 包是否實際安裝了 Python.h。

我這里沒有 kdevelop,但大多數 IDE 都有一個設置,您可以在其中指定構建系統使用的包含路徑,並且您應該能夠添加 Python.h 所在的路徑。

編輯:

正如 Nikolai 暗示的那樣,您還需要為鏈接階段添加正確的庫路徑。 (python-config --ldflags 的輸出)。

對於 Linux Ubuntu Putty 用戶試試這個:

sudo apt-get update
sudo apt-get install python-dev

然后編譯它

gcc -o check xyz.c -I/usr/include/python2.7/ -lpython2.7

然后運行它

./check 

我假設它已經安裝。 查找路徑:

find / -iname python.h

當你這樣做時,在編譯時添加

-I python_h_path

暫無
暫無

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

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