发布你的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运维开发之psutil库的使用详解
Oct 18 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
使用pycharm设置控制台不换行的操作方法
Jan 19 Python
python把转列表为集合的方法
Jun 28 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
Python使用re模块验证危险字符
May 21 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 Python
详解Python中Pyyaml模块的使用
Oct 08 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
Jun 05 Python
python中24小时制转换为12小时制的方法
Jun 18 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如何写APP接口详解
2016/08/23 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
jQuery中:lt选择器用法实例
2014/12/29 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
Python实用日期时间处理方法汇总
2015/05/09 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
centos7之Python3.74安装教程
2019/08/15 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
Python实现名片管理系统
2020/02/14 Python
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
初中科学教学反思
2014/01/21 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
消防志愿者活动方案
2014/08/23 职场文书
学校交通安全责任书
2014/08/25 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
欢迎词怎么写
2015/01/23 职场文书
2016大学军训心得体会
2016/01/11 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
Python turtle编写简单的球类小游戏
2022/03/31 Python
SQL Server携程核心系统无感迁移到MySQL实战
2022/06/01 SQL Server