zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    黑芝麻智能技术
    景嘉微GPU与显卡
    电子表格文档控件DevExpress Office File API v21.1
    WPF界面控件Telerik UI for WPF初级入门教程
    WPF应用程序的交互界面还有这些样式,赶紧Get
    手把手教你创建一个Windows风格的应用程序界面(Part 1)
    Web应用的数据管理教程
    Visual Studio插件CodeRush正式发布v21.1.5,免费高速下载
    Mysqldump 备份说明及数据库备份脚本分享-运维笔记
    某国有银行的超融合技术选型和应用实践
  • 原文地址:https://www.cnblogs.com/ll409546297/p/10775416.html
Copyright © 2011-2022 走看看