编写python的第三方库,最重要的一个工作就是编写setup.py了,如果我们下载过一些第三库的源代码文件,打开之后一般就会有一个setup.py,执行python setup.py install 就可以安装这个库了。setup.py 如何编写内容很多,可以参考官方文档:https://wiki.python.org/moin/Distutils/Tutorial?highlight=%28setup.py%29。
一个典型的setup.py的写法如下(参考自官方文档):
from distutils.core import setup
#这是一个和根目录相关的安装文件的列表,列表中setup.py更具体)
files = ["things/*"]
setup(name = "appname",
version = "100",
description = "yadda yadda",
author = "myself and I",
author_email = "email@someplace.com",
url = "whatever",
#Name the folder where your packages live:
#(If you have other packages (dirs) or modules (py files) then
#put them into the package directory - they will be found recursively.)
packages = ['package'],
#'package' package must contain files (see list above)
#I called the package 'package' thus cleverly confusing the whole issue...
#This dict maps the package name =to=> directories
#It says, package *needs* these files.
package_data = {'package' : files },
#'runner' is in the root.
scripts = ["runner"],
long_description = """Really long text here."""
#
#This next part it for the Cheese Shop, look a little down the page.
#classifiers = []
)
建立一个名字叫setup.py的文件, 从distutils.core 导入 setup, 然后编写 setup()函数,这个函数里面有相当多的属性,如果是正规的开发,所有这些东西都应该按照规范去写。其中比较重要的几个选项:
有时我们写的代码需要引入一些额外的信息文件,比如文本文件,或者图片,说明文件等等,这些东西是需要一块打包的,那么这个时候该如何指定呢?此时需要用到 data_files 这个选项了。
其实 setup.py 文件的编写还有非常多的内容,这里只是介绍了九牛一毛。后面接触到了更复杂的再继续补充吧。具体还是要参考官方文档。
打包命令:
http://blog.csdn.net/lynn_kong/article/details/17540207
简单来说,linux下的打包命令是:python setup.py sdist 为模块创建一个源码包。在windows下,可以使用 python setup.py bdist_wininst 生成一个exe文件。双击该exe文件,就会弹出python库的安装界面(就是经典的蓝色界面),可以自己选择要安装的位置(特别是电脑中有多个版本的python的时候,需要指定这个库装到哪个python库目录下),一路下一步,就安装成功了。此时去指定的python库目录下,就会发现多出了一些我们自己安装的文件以及文件夹。此时试着import一下,就会发现已经可以导入我们自己的模块了。
推荐阅读:https://blog.csdn.net/pfm685757/article/details/48651389
1、packages
__init__.py
的文件夹)package_dir
package_dir = {'': 'lib'}
,表示“root package”中的模块都在lib目录中。ext_modules
ext_package
requires
provides
scripts
--install-script
package_data
data_files