linux第三方模块参数,为Python安装第三方模块

一、基本安装

Python Distribution Utilities(Distutils)在Python 2.0时引入,其极大地方便了对第三方模块的管理。通常,模块作者提供的模块可能会以不同的形式出现,这其中,最易于安装的莫过于操作系统上对应的安装包,如Windows上的exe或msi,以及基于RPM的Linux发行版(如Redhat/CentOS/SuSE等)上的rpm格式的包。然而,模块的最常见形式应该是源码包,如果其是使用Distutils遵循标准格式进行的封包,安装起来也很简单。在类Unix操作系统上,使用“python setup.py install”即可安装,在Windows系统上,只需要在“cmd”中执行“setup.py install”命令即可。

“setup.py install”的执行过程包含两个阶段:build和install。事实上,出于定制等目的,此两个阶段可以分别进行:首先执行“python setup.py build”进行编译,而后再执行“python setup.py install”进行安装。不过,此时的install阶段仍然会显示执行build的过程,虽然其并未执行任何多余的操作。

“python setup.py build”编译过程直接在源码目录下进行,如果想保持源码的整洁,也可以通过“python setup.py build --build-base=/path/to/pybuild”命令将编译的结果保存至额外指定的路径下。编译完成后,在目标路径下会用一个名为“lib”或“lib.”的目录来保存即将安装的模块文件,其中“lib”用于完全用python语言开发的模块,而“lib.”通常用于基于C/C++开发的模块。

“python setup.py install”实现的安装过程非常简单,其仅是将编译好的文件复制到指定的模块安装目录中。在未指定安装目录时,模块的安装目录为默认,其名称通常为“site-packages”,其具体位置可以在python环境中进行查看,例如在Windows系统上查看的如下所示的结果中的“C:\\Python27\\lib\\site-packages”。

>>> import sys

>>> sys.path

['', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages']

CentOS 6.5 x86_64系统自带的python环境显示结果则要复杂一些,如下所示。

>>> sys.path

['', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/gtk-2.0', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info']

二、自定义安装

2.1 自定义模块的安装基准目录

实践中,将第三方模块安装在非默认目录下也是比较常见的需求,而Distutils的install命令为此也专门提供了相应的处理机制。

对于无法在全局site-packages目录写入文件的普通用户来说,可以为install命令指定“--user”选项将模块安装至用户家目录中相应的位置(类Unix系统通常为USER_BASE/lib/pythonX.Y/site-packages)。

如果出于仅以自用的目的想把模块安装至某特定路径下,可以为install命令指定“--home=

此外,常见于一些Linux发行版中,python会安装在/usr路径下,如果需要将第三方模块在安装于/usr/local而非默认的/usr路径下,则需要使用“--prefix”或“--exec-prefix”选项。其中,“--prefix”用于指定安装目录,而“--exec-prefix”用于指定平台特有的文件(例如C库)的安装目录,省略“--exec-prefix”时,其默认为“--prefix”指定的位置。查看当前系统python的默认prefix,可以通过如下方式进行。

>>> import sys

>>> sys.prefix

'/usr'

2.2 安装路径的深度定制

在安装第三方模块时,其会自动在安装基准目录中使用不同的目录来分别存储如python模块、扩展模块、可执行文件、数据及C头文件等几种不同类别的文件。如果需要对此些子目录进行定制,可以使用相应的选项进行:

python模块:--install-purelib=/path/to/somewhere

扩展模块:  --install-platlib=/path/to/somewhere

所有模块(即不区分python模块或扩展模块): --install-lib=/path/to/somewhere

可执行文件: --install-scripts=/path/to/somewhere

数据文件: --install-data=/path/to/somewhere

C头文件: --install-headers=/path/to/somewhere

这些路径可以使用相对路径或绝对路径。不过,使用--install-lib会覆盖--instal-purelib或--install-platlib指定的位置。例如下面的安装命令。

python setup.py install --home=~ \

--install-purelib=python/lib \

--install-platlib=python/lib.$PLAT \

--install-scripts=python/scripts

--install-data=python/data

如果需要为每一个安装的第三方模块都指定为特定的安装方案,也可以通过编辑Distutils的配置文件中[install]段的参数来统一定义,例如:

[install]

install-base=$HOME/python

install-purelib=lib

install-platlib=lib.$PLAT

install-scripts=scripts

install-data=data

参考文献:python官方文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值