python之打包、发布模块

  一、python中针对于写好的模块,并且比人也可以使用改模块,这样就可以以同意的打出来,让别人安装或者赋值过后可以更好的使用以及集成。

  二、最近在学习python所以这里主要是记录一下python的打包和发布过程

  三、具体流程

  1)编写模块

  a、这里为了简单的测试,所以简单的写一个模块

  

  b、模块内容

  

  

  c、测试

  

  2)编写打包代码、setup.py

 1  from distutils.core import setup
 2  
 3  setup(
 4      name = "demo",
 5      version = "1.0",
 6      description = "demo test",
 7      author = "test",
 8      author_email = "test@qq.com",
 9      py_modules = ["demo.demo"]
10  )

  具体参数的意义

--name 包名称
--version (-V) 包版本
--author 程序的作者
--author_email 程序的作者的邮箱地址
--maintainer 维护者
--maintainer_email 维护者的邮箱地址
--url 程序的官网地址
--license 程序的授权信息
--description 程序的简单描述
--long_description 程序的详细描述
--platforms 程序适用的软件平台列表
--classifiers 程序的所属分类列表
--keywords 程序的关键字列表
--packages 需要处理的包目录(包含__init__.py的文件夹) 
--py_modules 需要打包的python文件列表
--download_url 程序的下载地址
--cmdclass 
--data_files 打包时需要打包的数据文件,如图片,配置文件等
--scripts 安装时需要执行的脚步列表
--package_dir 告诉setuptools哪些目录下的文件被映射到哪个源码包。一个例子:package_dir = {'': 'lib'},表示“root package”中的模块都在lib 目录中。
--requires 定义依赖哪些模块 
--provides定义可以为哪些模块提供依赖 
--find_packages() 对于简单工程来说,手动增加packages参数很容易,刚刚我们用到了这个函数,它默认在和setup.py同一目录下搜索各个含有 __init__.py的包。

                          其实我们可以将包统一放在一个src目录中,另外,这个包内可能还有aaa.txt文件和data数据文件夹。另外,也可以排除一些特定的包

                          find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"])

--install_requires = ["requests"] 需要安装的依赖包
--entry_points 动态发现服务和插件,下面详细讲

  3)建立工程

1 python setup.py build

  

  

  4)打包

1 sudo python setup.py sdist

  

  

  5)安装(这里的demo-1.0.tar.gz就是打好的包)

cd dist
sudo tar -zxvf demo-1.0.tar.gz
cd demo-1.0
sudo python setup.py install --record install.log

  备注:这里的install.log是为了卸载

  测试:(任意位置测试)

  

  6)卸载

sudo cat install.log | xargs rm -rf

 

posted @ 2019-04-26 17:12  小不点丶  阅读(686)  评论(0编辑  收藏  举报