浅析python打包工具distutils、setuptools


当前第2页 返回上一页

在配置中将该模块需要的依赖全部都写好,安装时指定地址去下载。这种方式简化了使用时的安装过程,但是还不够好。最好的方式是pip的自动下载。

三、打包

打包之后多出两个文件夹,分别是demo.egg-info和dist。demo.egg-info是必要的安装信息,而dist中的压缩包就是安装包。

查看dist/demo-0.1.tar.gz解压之后的文件。

四、安装包

五、使用包

安装之后在命令行中直接输入path,回车能够看到调用了get_path.py中的函数fun(),输出字符串。

同时也可以导入使用。

setuptools的进阶使用

上面使用setuptools时只是简单的用一个配置文件setup.py就完成了打包信息填写。在真实的开发环境中,往往是多个文件配合。以openstack的打包为例。openstack中引入了Pbr的管理工具。

pbr是setuptools的辅助工具,最初为openstack开发,基于d2to1。Pbr会读取和过滤setup.cfg中的内容,然后将解析后的数据提供给setup.py作为参数。

setup.cfg提供setup.py的默认参数,同时易于修改。Setup.py先解析setup.cfg文件,然后执行相关命令。包括以下功能:

1、从git中获取Version,AUTHORS和ChangeLog信息

2、SphinxAutodoc。pbr会扫描project,找到所有模块,生成stubfiles

3、Requirements。读取requirements.txt文件,生成setup函数需要依赖包

4、long_description。从README.rst、README.txt或者READMEfile中生成long_description参数

Pbr的文件很简单,如下。配置之后会自动寻找目录下的setup.cfg文件,解析文件参数给setup.py使用。

setup.py


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

from setuptools import setup

setuptools.setup(

setup_requires=['pbr'],

pbr=True)

setup.cfg

 

[metadata]

name= keystone

version= 2015.2

summary= OpenStack Identity

description-file=

README.rst

author= OpenStack

author-email= openstack-dev@lists.openstack.org

home-page= http://www.openstack.org/

classifier=

Environment:: OpenStack

IntendedAudience :: Information Technology

IntendedAudience :: System Administrators

License:: OSI Approved :: Apache Software License

OperatingSystem :: POSIX :: Linux

ProgrammingLanguage :: Python

ProgrammingLanguage :: Python :: 2

ProgrammingLanguage :: Python :: 2.7

[files]

packages=

keystone

[global]

setup-hooks=

pbr.hooks.setup_hook

[egg_info]

tag_build=

tag_date= 0

tag_svn_revision= 0

[build_sphinx]

all_files= 1

build-dir= doc/build

source-dir= doc/source

[compile_catalog]

directory= keystone/locale

domain= keystone




以上就是浅析python打包工具distutils、setuptools的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

Python可以自学吗

sublime怎么写Python程序

Python共发布过哪些版本

Python单词怎么读

Python中yield的用法介绍(附代码)

Python怎么下载os库

Python怎么避免随机元素重复

Python中如何使用jpype实现调用java的实例分享

Python cookbook(数据结构与算法)将多个映射合并为单个映射

Python为什么要用class

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...