Chinaunix首页 | 论坛 | 博客
  • 博客访问: 783329
  • 博文数量: 231
  • 博客积分: 3217
  • 博客等级: 中校
  • 技术积分: 2053
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-04 12:01
文章分类

全部博文(231)

文章存档

2015年(1)

2013年(10)

2012年(92)

2011年(128)

分类: LINUX

2012-08-14 14:35:03

使用distutils可以将编写的python模块或包安装到python目录中去。
步骤:
1.准备好要安装的模块和包
2.编写setup.py,如:
#!/usr/bin/env python
from distutils.core import setup
setup (# Distribution meta-data
name = "testpackage",
version = "1.0",
description = "Distutils sample distribution testpackage",
#py_modules = [''],
packages = ['TestPackage'], 可以增加更多的参数
3.打包
>>> python setup.py sdist // 源码安装包
>>> python setup.py bdist_wininst //Windows 下使用
>>> python setup.py bdist_rpm //Linux 下使用

也可以在linux系统下使用python setup.py bdist --formats=wininst 然后将dist/*.exe复制到windows系统上安装

4.安装
源码包的安装是将源码包解压后,运行setup.py install;而Windows和Linux安装包则直接运行安装文件;

5编译扩展
#!/usr/bin/env python
from distutils.core import setup,Extension
setup(name='pa',version='1.0',ext_modules=[Extension('palindrome',['palindrome2.c'])])
如果使用install命令运行这个setup.py脚本,palinderome扩展模块应该会在安装前自动编译,如你所见,不是指定模块名字到列表,而是将Extension实例到列表提供给ext_modules参数。在linux系统下当前目录中生成palindrome.so文件,使用命令:python setup.py build_ext --inplace

安装swig可以让distutils直接使用它。让distutils使用swig将程序直接俄编译为python扩展是非常方便到,只要在extension实例中将接口(.i)文件到名字添加到文件列表中即可:
#!/usr/bin/env python
from distutils.core import setup,Extension
setup(name='pa',version='1.0',ext_modules=[Extension('pa',['pa.c','pa.i'])])
在linux系统下当前目录中生成palindrome.so文件,使用命令:python setup.py build_ext --inplace
阅读(2379) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~