1. # -*- coding: utf-8 -*-
  2. #python 27
  3. #xiaodeng
  4. #python之模块distutils,打包工具
  5.  
  6. import distutils
  7. #distutils包有2个目的:
  8. 1distutils希望让最终用户觉得安装新模块、包和工具的过程一致而轻松
  9. 2distutils希望让新模块、包和工具的开发者觉得创建这些容易安装的分发包很轻松
  10.  
  11. 总得来说,distutils就是用来打包的模块.
  12.  
  13. #2、用distutils如何打包?
  14. #http://blog.csdn.net/five3/article/details/7847551
  15. #setup.py
  16. import codecs
  17. import os
  18. import sys
  19. '''打包的用的setup必须引入'''
  20. from distutils.core import setup
  21.  
  22. def read(fname):
  23. '''
  24. 定义read(),用来读取目录下的长描述
  25. 我们一般将README文件中的内容读取出来叫做长描述,这个会在pypi中你的包的页面展现出来
  26. 你也可以不用此办法,直接手动写内容
  27. pypi上支持.rst格式的文件,暂时不支持md格式;rst格式的文件在pypi上会自动转化为html形式显示在你的包的信息页面上
  28. '''
  29. return codecs.open(os.path.join(os.path.dirname(__file__),fname)).read()
  30.  
  31. #setup函数参数说明
  32. #--------------------------------------------------------------------------#
  33. NAME='MyTest'
  34. '''名字:一般填写包的名字即可'''
  35.  
  36. PACKAGES=['MyTest']#需要打包的目录列表
  37. '''包:放置模块的名字,list形式,可放置多个;告诉Distutils需要处理那些包(包含__init__.py的文件夹)'''
  38.  
  39. DESCRIPTION='my first package'
  40. '''描述:关于这个包的基本描述'''
  41.  
  42. LONG_DESCRIPTION=read('README.rst')
  43. '''查查看包的具体更加详细的说明'''
  44.  
  45. KEYWORDS='test python package keyword'
  46. '''当前包的关键词,方便pypi分类'''
  47.  
  48. AUTHOR='xiaodeng' #作者
  49. AUTHOR_EMAIL='drgs156@163.com'
  50. URL='http://blog.sina.com.cn/u/3712558093'#项目地址,没有可写pypi上该包的地址
  51. VERSION='1.0.1'
  52. LICENSE='MIT'#授权方式
  53.  
  54. #这3项变量未添加到setup变量中,测试时可添加进入试试.
  55. DOWNLOAD_URL='' #程序的下载地址
  56. DATA_FILES=''#打包时需要打包的数据文件,如图片,配置文件等
  57. SCRIPTS='' #安装时需要执行的脚步列表
  58.  
  59. #构造setup
  60. setup(
  61. name=NAME,
  62. version=VERSION,
  63. description=DESCRIPTION,
  64. long_description=LONG_DESCRIPTION,
  65. classifiers=[
  66. 'License :: OSI Approved :: MIT License',
  67. 'Programming Language ::Python',
  68. 'Intended Audience :: Developers',
  69. 'Operating System :: OS Independent',
  70. ],
  71. keywords=KEYWORDS,
  72. author=AUTHOR,
  73. author_email=AUTHOR_EMAIL,
  74. url=URL,
  75. license=LICENSE,
  76. packages=PACKAGES,
  77. include_package_data=True,
  78. zip_safe=True,
  79. py_modules=['test','test1','test2'], #填写你的模块py文件,就是要打包的python文件列表
  80. )
  81.  
  82. '''
  83. 安装
  84. >>> python setup.py sdist // 源码安装包
  85. >>> python setup.py bdist_wininst //Windows 下使用
  86. >>> python setup.py bdist_rpm //Linux 下使用
  87. '''

python之模块distutils,打包工具的更多相关文章

  1. Python 自定义模块的打包和发布

    写了一个Python模块,要求打包发布,供同事们使用,好吧,查了一下,网上大部分教程没有一个能把话说明白,不过最后还是解决了,特此记录一下, 以免下次遇到同样问题,也帮助其他有缘人,哈哈. 首先看一下 ...

  2. Python—selenium模块(浏览器自动化工具)

    selenium可以用来完成浏览器自动化相关的操作,写一些代码制定一些基于浏览器自动化的相关操作(行为动作),当代码执行后,浏览器就会自动触发相关的事件 安装方法: pip install selen ...

  3. 简单理解 Webpack,以及Web前端使用打包工具的原因

    Java 中的模块 传统的前端开发就是 JS.HTML.CSS 三件套.Web 没有像 Java 一样拥有优秀的模块机制,就是类与类之间可以分装在不同的包下,不同包下的类互相引用时通过import导入 ...

  4. python打包工具distutils、setuptools分析

    在上一篇博文中总结了python中导入包,安装包一条完整的线路.其中有一个有意思的知识点,安装包的方式有很多种,模块和包管理中打包,发布,安装也是值得研究的内容. python中安装包的方式有很多种: ...

  5. python打包工具distutils、setuptools的使用

    python中安装包的方式有很多种: 源码包:python setup.py install 在线安装:pip install 包名(linux) / easy_install 包名(window) ...

  6. Python学习手册之__main__ 模块,常用第三方模块和打包发布

    在上一篇文章中,我们介绍了 Python 的 元组拆包.三元运算符和对 Python 的 else 语句进行了深入讲解,现在我们介绍 Python 的 __main__ 模块.常用第三方模块和打包发布 ...

  7. Python打包工具setuptools的使用

    将我们写的Python程序发布成包后,可以使其能够安装使用. 在项目上测试的时候,某些情况下,可以将Python打包,然后上传到测试服务器,安装测试. setuptools是常用的打包工具. 一个简单 ...

  8. Python 库/模块/工具收集

    1 算法 1.1 字符串处理 re 正则表达式的标准库. StringIO / cStringIO 以读写文件的方式来操作字符串(有点类似于内存文件). cStringIO 是 C 语言实现的,提供高 ...

  9. 各种 Python 库/模块/工具

    1 算法 1.1 字符串处理 re 正则表达式的标准库. StringIO / cStringIO 以读写文件的方式来操作字符串(有点类似于内存文件). cStringIO 是 C 语言实现的,提供高 ...

随机推荐

  1. ECC校验

    ECC的全称是 Error Checking and Correction or Error correction Coding,是一种用于差错检测和修正的算法.NAND闪存在生产和使用中都会产生坏块 ...

  2. 一步一步学SpringDataJpa——JpaRepository查询功能

    原文地址: https://blog.csdn.net/ming070423/article/details/22086169 1.JpaRepository支持接口规范方法名查询.意思是如果在接口中 ...

  3. SQLSERVER系统视图 sql server系统表详细说明

    参考 https://www.cnblogs.com/luluping/archive/2012/11/05/2754639.html https://www.cnblogs.com/litubin/ ...

  4. aspnet_regiis -i VS 20XX 的开发人员命令提示符

    1,VS 2010 Setting environment x86 tools. D:\Program Files\Microsoft Visual Studio 10.0\VC>aspnet_ ...

  5. USB线插拔检测使用UEventObserver检测uevent事件的分析

    说实话这玩样儿的代码量真的很少,大家如果能耐得住性子啃一会儿也就能撸懂了. 在这之前研究USB线插拔的时候就知道了有这么个东西,当时也就看了看,但没做什么笔记.最近想用起来,却发现就只有个名字在记忆中 ...

  6. 2、Python特征

    Python特征 Python编程语言中的定位 脚本语言 高阶动态编程语言 简单易学 Python是一种代表简单主义思想的语言.Python的这种伪代码本质是它最大的优点之一.它使你能够专注于解决问题 ...

  7. 使用jQuery获取radio/checkbox组的值的代码收集

    <!-- $("document").ready(function(){ $("#btn1").click(function(){ $("[na ...

  8. iOS开发-消息通知机制(NSNotification和NSNotificationCenter)

    iOS中委托模式和消息机制基本上开发中用到的比较多,一般最开始页面传值通过委托实现的比较多,类之间的传值用到的比较多,不过委托相对来说只能是一对一,比如说页面A跳转到页面B,页面的B的值改变要映射到页 ...

  9. Centos安装FTP服务器和配置

    安装 yum install vsftpd 启动/重启/关闭 /sbin/service vsftpd start /sbin/service vsftpd restart /sbin/service ...

  10. 学界 | Yann LeCun新作,中日韩文本分类到底要用哪种编码?

    https://www.wxwenku.com/d/102093756 AI科技评论按:前几天,Yann LeCun与其学生 张翔在arXiv上发表了一篇新作「Which Encoding is th ...