Distutils介绍
来源:互联网 发布:水稻基因组数据库 编辑:程序博客网 时间:2024/05/21 13:23
Distutils介绍
这篇文章包含了用Python Distutils发布python模块的各个方面,主要是针对Python的开发人员。如果你想要知道怎么安装python模块,应该参考安装Python模块的章节。
1.1 专业术语
用Distutils是非常简单的,不仅对Python开发者来说,对想安装Python第三方模块的用户来说也很简单。作为一个开发人员,你的职责包括:
- 写个安装的脚本(通常命名为setup.py)
- 写个安装的配置文件(可选)
- 创建一个包含源文件的包
- 创建一个或多个编译好的包(可选)
这些任务在这篇文章中都会包括。
不是所有的开发人员都会用多种平台。所以期望他们创建适合与多平台的发布版本是不实际的。创建一种中间的媒介来达到所有的平台都可以用的目的是可行的。这种中间包包含着源代码。这样在不同平台 上的用户,就可以用比较简单的方式来安装这些模块。
1.2一个简单的例子
安装脚本通常很简单,虽然它是由python语言写的。但是没有限制你来用它做什么。和自动配置形式的脚本不同,这个安装脚本在编译和安装模型的过程中会执行很多次。
如果你想发布一个叫“foo”的模块,他包含一个"foo.py"的文件,那么你的setup.py文件可以简单的写为
from distutils.core import setupsetup(name='foo', version='1.0', py_modules=['foo'],)一些需要注意的地方:
- 你提供给Distutils的大部分信息都是作为setup()函数的关键字参数传递的
- 这些参数主要分为两类:包的元数据(名字,版本号)和在包里面包含文件的信息(Python模块的列表)
- 模型是通过模型名字来进行标记的,而不是文件名
- 通常来说提供多点的包信息会好一些,包括:作者的名字,email地址,这个项目的URL地址等。
创建一个包含源代码的模型,你应该创建一个setup.py的文件,然后运行下列命令
python setup.py sdistsdist命令会创建一个包含setup.py和foo.py的压缩文件(Unix的tar,windows的zip)。这个压缩文件会被命名为foo-1.0.tar.gz或者foo-1.0.zip
如果想要安装foo模块,就需要下载下foo模块,解压缩,然后在解压后的文件夹中运行
python setup.py install这样最终foo.py文件将会被安装到一个合适python第三方包的地方。
这个简单的例子说明了几个Distutils的概念:1、用户和开发者有共同的接口,setup.py 唯一的不同是开发人员命令参数是sdist,用户是install;
如果你想开发出对用户来说,更简单的安装方式,可以创建出多中安装包。例如,开发人员在windows环境下,就可以创建出windows下的可执行文件。
用bdist_wininst命令
python setup.py bdist_wininst那么将会创建一个foo-1.0.win32.exe的文件
同样用bdist_rpm命令可以创建一个RPM文件,bdist_pkgtool创建pkgtool(Solaris),bdist_sdux创建swinstall(HP_UX)文件。
通过运行下来命令可以知道可以创建什么样的文件。
python setup.py bdist --help-formats
1.3python的专有名词
模块:Python可重用的基本单元,有三种Python模块:纯python模块,扩展python模块和包
纯python模块:用python编写只包含一个.py文件
扩展python模块:用更低级的语言(比如C/C++)写的Python执行部分,通常包含一个动态预编译的文件例如.so文件对于Linux来说,.Dll文件对于Window来说
包:一个包含其他多个模块的模块。和其他不一样的地方就是包含__init__.py文件
1.4 Distutils的专有名词
模块分发:把多个模型分发作为一个下载文件
纯文件分发:只包含一个纯python模块和包的模型分发
非纯文件发放:至少包含一个扩展模型分发
分发的根:你源代码树的顶层目录。及setup.py所在的地方。
阅读全文
0 0
- Distutils介绍
- numpy.distutils.system_info.BlasNotFoundError:
- Python的Distutils模块
- Python之Distutils打包
- 使用distutils发布模块
- Python: pydoc 和 distutils 模块
- 用distutils打包python app
- Python深入:Distutils安装包
- distutils Unknown MS Compiler version
- Python的Distutils模块与cx_Freeze对比
- [Python]ImportError: No module named Cython.Distutils
- 可爱的 Python: pydoc 和 distutils 模块
- python打包工具distutils的使用
- Python深入:Distutils发布Python模块
- python 的打包及安装 distutils
- python开发者打包发布工具Distutils | setuptools
- Distutils发布C++扩展的Python模块
- 解析from distutils.version import LooseVersion
- java日常学习:构造函数及this关键字使用
- Format函数
- 如何减肥之饮食规则
- wustoj (二叉树)
- CUDA随机数模块 无法编译通过问题
- Distutils介绍
- 在Windows上让Python脚本像程序一样可以双击运行
- spring aop学习9:Aop的链式调用(责任链模式)
- Map接口笔记
- 高版本eclipse安装Tomcat插件
- Python学习笔记——使用dict和set
- 叫教你打造一个滑动悬浮置顶的视觉效果,给你的广告栏增加一些特色
- 常见编码GBK、GB2312、UTF-8、ISO-8859-1的区别
- linux centos7 安装nginx