发布你的Python模块详解


Posted in Python onSeptember 15, 2016

我们在学习Python的时候,除了用pip安装一些模块之外,有时候会从网站下载安装包下来安装,我也想要把我自己编写的模块做成这样的安装包,该怎么办,如何发布呢?

大概需要以下四个步骤:

1.首先为模块创建一个文件夹。

举个简单的栗子,你写了一个add.py模块文件,里面有个add方法实现加法。这第一步就需要你创建一个文件夹。并把add.py复制到这个文件夹里,为简单起见,我们把文件夹就命名为add

add
|__add.py

2.然后在新文件夹中创建一个名为“setup.py”的文件。

编辑这个文件,增加下面的代码。这个文件包含有关发布的元数据,如下面的示例,具体的元数据可以与示例中不同:

from distutils.core import setup

setup(
    name    = 'add',
    version   = '1.0.0',
    py_modules = ['add'],
    author   = 'huilan',
    author_email= 'womende218@126.com',
    url     = 'http://www.lalalala.com',
    descriptioin= 'add two numbers',
  )

3.构建一个发布文件。

现在我们有了一个文件夹,其中包含两个文件:模块代码放在add.py中,有关的元数据放在setup.py中。接下来我们就利用Python自带的发布工具制作发布文件。
在add文件夹中打开一个终端,或者cmd命令行cd到add文件夹中,执行以下命令:

python3 setup.py sdist

4.将发布模块安装到你本地Python中。

仍然在刚刚打开的终端中,输入以下命令:

sudo python3 setup.py install

看屏幕上出现了发布信息,确认安装成功,发布即准备好。

最终我们得到的文件夹结构如下:

add
   |__ MANIFEST
   |__ build
   |         |__ lib
   |                |__ add.py
   |__ dist
   |        |__ add-1.0.0.tar.gz
   |__ add.py
   |__ add.pyc
   |__ setup.py

其中:

- MANIFEST这个文件包含发布中的文件列表
- build\lib\add.py与根目录下的add.py都是代码文件
- dist\add-1.0.0.tar.gz是发布包
- add.pyc是编译版本代码
- setup.py存放元数据

 以上就是发布你的Python模块的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

Python 相关文章推荐
跟老齐学Python之??碌某?? target=
Sep 12 Python
Python中函数的参数定义和可变参数用法实例分析
Jun 04 Python
浅析python中SQLAlchemy排序的一个坑
Feb 24 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
微信跳一跳python自动代码解读1.0
Jan 12 Python
详解Python如何生成词云的方法
Jun 01 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 Python
pandas删除指定行详解
Apr 04 Python
python远程连接MySQL数据库
Apr 19 Python
Django之编辑时根据条件跳转回原页面的方法
Aug 21 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
Jul 03 Python
详解Python 函数参数的拆解
Sep 02 Python
Python selenium 三种等待方式解读
Sep 15 #Python
玩转python selenium鼠标键盘操作(ActionChains)
Apr 12 #Python
Python selenium文件上传方法汇总
Nov 19 #Python
Python selenium如何设置等待时间
Sep 15 #Python
Python selenium 父子、兄弟、相邻节点定位方式详解
Sep 15 #Python
Python selenium 三种等待方式详解(必会)
Sep 15 #Python
python使用pymysql实现操作mysql
Sep 13 #Python
You might like
第五章 php数组操作
2011/12/30 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
2016/11/16 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
Python字符串格式化输出代码实例
2019/11/22 Python
django ajax发送post请求的两种方法
2020/01/05 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
汽车驾驶求职信
2013/10/25 职场文书
酒店保安员岗位职责
2014/01/31 职场文书
安全生产奖惩制度
2015/08/06 职场文书
小学生班干部竞选稿
2015/11/20 职场文书