天天看点

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文件,