发布你的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出现segfault错误解决方法
Apr 16 Python
TensorFlow实现卷积神经网络CNN
Mar 09 Python
对numpy中shape的深入理解
Jun 15 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
Python 旋转打印各种矩形的方法
Jul 09 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
python 链接sqlserver 写接口实例
Mar 11 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
Python图像处理之图像拼接
Apr 28 Python
Python 实现Mac 屏幕截图详解
Oct 05 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
sphinx增量索引的一个问题
2011/06/14 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
js简易namespace管理器 实例代码
2013/06/21 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
详解javascript遍历方式
2015/11/11 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
vue组件 $children,$refs,$parent的使用详解
2017/07/31 Javascript
收集前端面试题之url、href、src
2018/03/22 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
js实现星星打分效果
2020/07/05 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
python实现图片识别汽车功能
2018/11/30 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
python路径的写法及目录的获取方式
2019/12/26 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
Python reques接口测试框架实现代码
2020/07/28 Python
Python 解析xml文件的示例
2020/09/29 Python
韩国现代百货官网:Hmall
2018/03/21 全球购物
strlen的几种不同实现方法
2013/05/31 面试题
linux面试题参考答案(4)
2014/09/21 面试题
介绍一下你对SOA的认识
2016/04/24 面试题
外语专业毕业生个人的自荐信
2013/11/19 职场文书
服务员岗位责任制
2014/02/11 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书