发布你的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 面向对象 成员的访问约束
Dec 23 Python
深入解析Python中的__builtins__内建对象
Jun 21 Python
Python 迭代器与生成器实例详解
May 18 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
Python import与from import使用及区别介绍
Sep 06 Python
python pytest进阶之conftest.py详解
Jun 27 Python
python正则表达式匹配IP代码实例
Dec 28 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
Feb 26 Python
Python3 webservice接口测试代码详解
Jun 23 Python
python求解汉诺塔游戏
Jul 09 Python
Python实现日志实时监测的示例详解
Apr 06 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
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
php读取本地json文件的实例
2018/03/07 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
Python简单日志处理类分享
2015/02/14 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
python实现用户管理系统
2018/01/10 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
企业为何需要商业计划书
2013/12/26 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
python用tkinter开发的扫雷游戏
2021/06/01 Python
使用CSS实现音波加载效果
2023/05/07 HTML / CSS