天天看點

python-devel和python-dev的差別

linux發行版通常會把類庫的頭檔案和相關的pkg-config分拆成一個單獨的xxx-dev(el)包.

以python為例, 以下情況你是需要python-dev的

你需要自己安裝一個源外的python類庫, 而這個類庫内含需要編譯的調用python api的c/c++檔案

你自己寫的一個程式編譯需要連結libpythonXX.(a|so)

(注:以上不含使用ctypes/ffi或者裸dlsym方式直接調用libpython.so)

其他正常使用python或者通過安裝源内的python類庫的不需要python-dev.

python-dev的包在centos的yum中不叫python-dev,而是python-devel.

1.python-dev或python-devel

python-dev或python-devel稱為是python的開發包,

其中包括了一些用C/Java/C#等編寫的python擴充在編譯的時候依賴的頭檔案等資訊。

比如我們在編譯一個用C語言編寫的python擴充子產品時,因為裡面會有#include<Python.h>等這樣的語句,是以我們就需要先安裝python-devel開發包。

2.各種*.devel開發包

linux程式設計中,還會遇到各種*-devel開發包,例如mysql-devel、libgtk+-devel等等。

*-devel開發包中主要包括一些頭檔案和靜态連結庫。任何*-devel包基本都是這樣。

備注:

注意python-dev或者其他*.devel軟體一般都是C語言編寫的一些頭檔案或cpp檔案,