发布你的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基础教程之常用运算符
Aug 29 Python
Python中的包和模块实例
Nov 22 Python
python中set()函数简介及实例解析
Jan 09 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
Aug 03 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 Python
Python中six模块基础用法
Dec 08 Python
Python while循环使用else语句代码实例
Feb 07 Python
django queryset相加和筛选教程
May 18 Python
Python错误的处理方法
Jun 23 Python
浅析PyCharm 的初始设置(知道)
Oct 12 Python
python编写五子棋游戏
May 25 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
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
2018/09/19 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
python正则表达式re模块详解
2014/06/25 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
2016/06/30 Python
简单谈谈Python中的反转字符串问题
2016/10/24 Python
Python用threading实现多线程详解
2017/02/03 Python
centos7之Python3.74安装教程
2019/08/15 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
教育学习自我评价
2014/02/03 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python