花了两天,总算把 Python 的 Setup.py 给整明白了
1. 为什么必要对项目分发打包? 泛泛我们风俗了行使 pip 来安装一些第三方模块,这个安装进程之以是简朴,是由于模块开拓者为我们冷静地为我们做了全部繁杂的事变,而这个进程就是 打包。 打包,就是将你的源代码进一步封装,而且将全部的项目陈设事变都事先布置好,这样行使者拿到后即装即用,不消再劳神怎样陈设的题目(假如你不想比较着一堆陈设文档手工操纵的话)。 不管你是在事变中,照旧业余筹备本身写一个可以上传到 PyPI 的项目,你都要学会怎样打包你的项目。 Python 成长了这么些年了,项目打包器材也已经很成熟了。他们都有哪些呢? 你也许听过 disutils、 distutils 、distutils2、setuptools等等,仿佛很认识,却又很生疏,他们都是什么相关呢? 2. 包分发的始祖:distutils distutils 是 Python 的一个尺度库,从定名上很轻易看出它是一个分发(distribute)器材(utlis),它是 Python 官方开拓的一个分发打包器材,全部后续的打包器材,所有都是基于它举办开拓的。 distutils 的精华在于编写 setup.py,它是模块分发与安装的指导文件。 那么怎样编写 setup.py 呢?这内里的内容很是多,我会在后头举办具体的理会,请你耐性往下看。 你有也许没写过 setup.py ,但你绝对行使过 setup.py 来做一些工作,好比下面这条呼吁,我们常常用它来举办模块的安装。 $ python setup.py install 这样的安装要领是通过源码安装,与之对应的是通过二进制软件包的安装,同样我也会在后头举办先容。 3. 分发器材进级:setuptools setuptools 是 distutils 加强版,不包罗在尺度库中。其扩展了许多成果,可以或许辅佐开拓者更好的建设和分发 Python 包。大部门 Python 用户城市行使更先辈的 setuptools 模块。 distribute,或者你在其他处所也见过它,这里也提一下。 distribute 是 setuptools 有一个分支版本,分支的缘故起因也许是有一部门开拓者以为 setuptools 开拓太慢了。但此刻,distribute 又归并回了 setuptools 中。因此,我们可以以为它们是统一个对象。 尚有一个大包分发器材是 distutils2,其试图实行充实操作distutils,detuptools 和 distribute 并成为 Python 尺度库中的尺度器材。但该打算并没有到达预期的目标,且已经是一个废弃的项目。 因此,setuptools 是一个优越的,靠得住的 Python 包安装与分发器材。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |