前言

用过python的人肯定对pip安装不陌生,pip安装的包的来源都是在Pypi上。为了能随时能使用自己的包,所以尝试一下将自己的包发布到Pypi上。

步骤

一、准备项目

一、创建目录结构

二、准备文件

1、README.rst

关于项目的描述文件,一般包含怎样安装项目,怎样使用项目等。

2、LICENSE.txt

创建许可证,上传到Python Package Index的每个包都包含许可证,开源License,如MIT,Apache license 2.0等。可参考 https://choosealicense.com/

3、setup.py

是setuptools的构建脚本,包括定义包名、版本、包含哪些代码模块、依赖哪些库、在哪些Python版本上运行等

参考链接:https://packaging.python.org/tutorials/packaging-projects/

4、项目文件

根据自己的需求,编写核心代码,包名要和setup.py配置保持一致!





5、在上传之前,可以先通过命令校验 setup 写错了没有:

$ python setup.py check
running check

如果没有输出任何错误,则说明格式正确。

三、打包

打tar.gz格式的包:

python setup.py sdistbuild

四、注册上传

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



安装上传包环境

Pip install twine



发布包到PyPi,输入创建的用户名和密码

twine upload dist/*

五、检查



安装使用

pip install ***(包名)



卸载

pip uninstall ***(包名)

六、迭代更新

每次更新都需要修改不同的版本号才能发布

然后重复上面的命令

python setup.py sdist
twine upload dist/*



检查

Pypi项目包发布的更多相关文章

  1. 实战教程:如何将自己的Python包发布到PyPI上

    1. PyPi的用途 Python中我们经常会用到第三方的包,默认情况下,用到的第三方工具包基本都是从Pypi.org里面下载. 我们举个栗子: 如果你希望用Python实现一个金融量化分析工具,目前 ...

  2. Tomcat下使用war包发布项目

    Tomcat下使用war包发布项目 转自<Tomcat下使用war包发布项目 >,地址:http://blog.csdn.net/wy818/article/details/7240294 ...

  3. eclipse新建web项目,发布 run as 方式和 new server然后添加项目方式。 后者无法自动编译java 成class文件到classes包下。

    eclipse新建web项目,发布 run as 方式和 new server然后添加项目方式. 后者无法自动编译java 成class文件到classes包下. 建议使用run as  -  run ...

  4. 基于node的前端项目代码包发布至nexus

    目录 目录... 3 1. 前言... 1 2. 配置... 1 2.1. 配置angular.json文件... 1 2.2. 配置package.json文件... 1 2.3. 复制git地址. ...

  5. [Python] 项目打包发布

    一.setuptools - 官方文档: Building and Distributing Packages with Setuptools- 中文文档: Python包管理工具setuptools ...

  6. Linux项目部署发布

    Linux项目部署发布 1.部署环境准备,准备python3和虚拟环境解释器,virtualenvwrapper pip3 install -i https://pypi.douban.com/sim ...

  7. Python3如何上传自己的PyPI项目

    有过一定的 Python 经验的开发者都知道,当引入第三方包时,我们常常会使用 pip install 命令来下载并导入包. 那么,如何写一个自己的包,上传到 PyPI 呢,其他开发者也可以通过 pi ...

  8. Axis2使war包发布为WebService

    首先 吐槽下 Axis2的Eclipse插件.不好用,而且局限性大.并且添加包的过程...会及其痛苦.(懂的自然懂) 而且 发布的aar文件,不能解压缩重新打包再压缩...尝试过添加 jar包,但报错 ...

  9. eclipse项目自动发布到tomcat目录,缺文件。

    eclipse项目自动发布到tomcat目录,缺文件. 解决方案: 项目--Properties-->Deployment Assembly-->Add--> Folder Add- ...

随机推荐

  1. Redis学习笔记(五)——数据结构之哈希(Hash)

    一.介绍 Redis hash是一个string类型的field和value的映射表,hash特别设于用于存储对象. Redis中每个hash可以存储232 - 1 键值对(40多亿). 基本命令: ...

  2. LoRaWAN和LoRa的区别在那里?

    有很多人都分不清楚LoRaWAN和LoRa到底有什么区别,甚至有人认为它们是一样的,但其实这两个不一样的. LoRa是一个物理层的协议,而LoRaWAN则指的是MAC层的组网协议.虽然现有的LoRaW ...

  3. Centos7或RedHat7下安装Mysql

    一次简单的Mysql安装记录 前言 由于网上安装Mysql的方式有很多种,但有些方式并未安装成功,比如用Yum源,还待后续查看具体是哪一步出了问题 以rpm包的形式安装Mysql 第一步:yum in ...

  4. 9.mysql性能优化-慢查询分析、优化索引和配置

    目录 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 max_connections ...

  5. Python调用飞书发送消息

    一.创建飞书机器人 自定义飞书机器人操作步骤,具体详见飞书官方文档:<机器人 | 如何在群聊中使用机器人?>

  6. first day for my bolg

    做为一名毕业不久的兢兢业业的前端小白,傻到一直用word做笔记,还有各种手抄(捂脸),下定决心以后改用博客,据说大神们都是这么做的!嘿嘿,先把各种笔记腾上来,内容实在惨不忍睹各种智商感人,希望不要有人 ...

  7. MFC的Static控件文字重叠问题

    写个普通的MFC桌面程序,为了美化界面用了界面库,然后界面上的静态文本就出现了重叠的效果,就像下面这样: 但是窗口被刷新一下就好了,比如被遮挡后恢复的时候.在程序中可以手动加入以下代码: void C ...

  8. python super继承用法

    子类对父类的继承一般写法为1, 高级方法为super. 1 # 1,普通继承 2 #新建一个父类 3 class Father(): 4 def father(self,message): 5 pri ...

  9. lseek系统调用

    文件的随机读写.目前为止,文件都是顺序访问.读写都是从当前文件的偏移位置开始,然后文件偏移值自动的增加到刚好超出读或者写结束的位置是它为下一次作好准备.在linux中有文件偏移.使得随机访问变得简单, ...

  10. python之 《pandas》

    pandas稍微比numpy处理数据起来还是要慢一点,pandas呢是numpy的升级版,可以说各有所长,numpy的优势是用来处理矩阵,而pandas的优势是处理数表. 1. Series 线性数表 ...