Python如何将模块打包并发布


Posted in Python onAugust 30, 2020

想要把自己开发的库分享给别人使用, 使用 pip install 命令来安装 , 需要学习如何制作一个python 安装包

一、注册pypi账号

https://pypi.org/account/register/

二、创建setup.py和pypirc文件

setup.py模板(该文件放在项目根目录下)

from os.path import abspath, dirname, join 
​ 
from setuptools import setup, find\_packages 
​ 
\# 获取requirements.txt里的依赖信息 
install\_reqs = \[req.strip() for req in open(abspath(join(dirname(\_\_file\_\_), 'requirements.txt')))\] 
​ 
with open("README.md", 'r', encoding="utf-8") as f: 
 long\_description = f.read() 
​ 
setup( 
 name='模块名', 
 version='0.0.1', 
 packages=find\_packages(), 
 url='网址', 
 license='协议', 
 author='作者姓名', 
 author\_email='作者邮箱', 
 description='描述信息', 
 long\_description=long\_description, 
 long\_description\_content\_type="text/markdown", 
 install\_requires=install\_reqs, 
)

pypirc模板 (该文件放在家目录内)

这个文件用来存储刚才注册pypi账号信息

[distutils] 
index-servers=pypi 
[pypi] 
repository = https://upload.pypi.org/legacy/ 
username = 刚才注册的用户名 
password = 刚才注册的密码

三、安装依赖

pip install --upgrade pip twine wheel setuptools

四、打包

python setup.py sdist bdist_wheel

打包之后 会在项目的dist目录内生成whl文件

五、将whl文件上传到pypi服务器

twine upload dist/*

以上就是Python如何将模块打包并发布的详细内容,更多关于python 模块打包发布的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python进阶篇之字典操作总结
Nov 16 Python
python安装cx_Oracle模块常见问题与解决方法
Feb 21 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
tensorflow获取变量维度信息
Mar 10 Python
Python快速查找list中相同部分的方法
Jun 27 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
程序员写Python时的5个坏习惯,你有几条?
Nov 26 Python
简单了解django orm中介模型
Jul 30 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
用基于python的appium爬取b站直播消费记录
Apr 17 Python
python 算法题——快乐数的多种解法
May 27 Python
pandas时间序列之pd.to_datetime()的实现
Jun 16 Python
如何以Winsows Service方式运行JupyterLab
Aug 30 #Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 #Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 #Python
python开根号实例讲解
Aug 30 #Python
python一些性能分析的技巧
Aug 30 #Python
python脚本第一行如何写
Aug 30 #Python
golang/python实现归并排序实例代码
Aug 30 #Python
You might like
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
angular动态表单制作
2018/02/23 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
python3实现暴力穷举博客园密码
2016/06/19 Python
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
python的debug实用工具 pdb详解
2019/07/12 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
python实现全排列代码(回溯、深度优先搜索)
2020/02/26 Python
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
道路施工安全责任书
2014/07/24 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
个人工作保证书
2015/02/28 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
干部理论学习心得体会
2016/01/21 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python
详解Vue的sync修饰符
2021/05/15 Vue.js
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL