如何在Pypi上发表自己的Python库
背景
最近兴趣使然写了几个Python库,也发布到了Pypi上,虽然没什么人下载,但自己在其他机器上用着也会很方便。这里我向大家介绍一下如何在Pypi上发表自己的Python库。
准备
注册账号
很显然地要在Pypi上注册一个账号。
安装必要的库
setuptools
原则上安装了pip的环境都有setuptools,但并不影响你去尝试升级一下它。
pip install --upgrade setuptools
twine
这是一个简化将库发布到Pypi上流程的工具,具体的使用之后会讲到。
pip install --upgrade setuptools
克隆仓库(推荐)
大名鼎鼎的requests库的作者大神kennethreitz为大家准备了一个仓库作为一个setup.py的很好的模板,当然你也可以自己手写setup.py。
git clone https://github.com/kennethreitz/setup.py
编码
编辑setup.py
建议大家直接编辑之前的仓库里的setup.py, 只需要修改一些必要的配置就可以了。这是我最近编写的库condition_chain的配置。
...
# Package meta-data.
NAME = 'condition_chain'
DESCRIPTION = 'Process a series of conditional judgement with a chained call.'
URL = 'https://github.com/duyixian1234/condition_chain'
EMAIL = 'duyixian1234@outlook.com'
AUTHOR = 'Yixian Du'
# What packages are required for this module to be executed?
REQUIRED = [
# 'requests', 'maya', 'records',
]
...
编写核心代码
接下来我们就可以编写自己的代码了,要注意源代码文件夹(仓库里的my_package文件夹)的名字与setup.py里配置的包名(Name)要一致。
另外在重新上传之前我们要修改__version__.py里的版本号,以免覆盖了以前的上传(相信会有人是需要之前版本的库的)。
最终的代码结构
│ LICENSE
│ MANIFEST.in
│ README.rst
│ setup.py
│
└─condition_chain
core.py
__init__.py
__version__.py
打包上传
在setup.py的同级目录下运行以下命令。
python setup.py sdist bdist_wheel
然后运行
twine upload dist/*
注意要输入Pypi账号和密码。
大功告成
之后我们就可以在Pypi里搜索到自己的Python库了,当然也可以直接通过pip安装。
如何在Pypi上发表自己的Python库的更多相关文章
- 在Pypi上发布自己的Python包
使用Python编程的都知道,Python的包安装非常的方便,一般都是可以pip来安装搞定: sudo pip install <package name> pip的安装请移步:https ...
- 如何在linux上有2个python的情况下安装gensim
安装python的问题 https://blog.51cto.com/liqingbiao/2083869 安装gensim https://blog.csdn.net/zhujiyao/articl ...
- 教你如何在Ubuntu上安装最新的Python版本
参考链接:https://cloud.tencent.com/developer/news/343104
- linux上安装BeatifulSoup(第三方python库)
1. 什么是beatifulsoup? beatifulsoup官网http://www.crummy.com/software/BeautifulSoup/ BeatifulSoup是用Python ...
- Python 库打包分发、setup.py 编写、混合 C 扩展打包的简易指南(转载)
转载自:http://blog.konghy.cn/2018/04/29/setup-dot-py/ Python 有非常丰富的第三方库可以使用,很多开发者会向 pypi 上提交自己的 Python ...
- Python库资源大全
转载地址:https://zhuanlan.zhihu.com/p/27350980 本文是一个精心设计的Python框架.库.软件和资源列表,是一个Awesome XXX系列的资源整理,由BigQu ...
- Python库资源大全【收藏】
本文是一个精心设计的Python框架.库.软件和资源列表,是一个Awesome XXX系列的资源整理,由BigQuant整理加工而成,欢迎扩散.欢迎补充! 对机器学习.深度学习在量化投资中应用感兴趣的 ...
- 如何在Pypi发布上传你自己的Python库
Pypi上传包 准备 Windows环境 *以下教程只能在Windows上执行,MACOS系统不能使用 注册账号 你需要在Pypi上注册一个账号. 安装必要的库 setuptools 原则上安装了pi ...
- 将自己写的Python代码打包放到PyPI上
如果是开源的Python代码,为了能够让大家更方便的使用,放到PyPI上也许是个非常不错的主意(PyPI:Python Package Index).刚开始我以为要将代码打包放到PyPI上是一件非常复 ...
随机推荐
- NIO通讯框架之Mina
在两三年前,阿堂在技术博客(http://blog.sina.com.cn/heyitang)上曾经写过"JAVA新I/O学习系列笔记(1)"和"JAVA新I ...
- Docker入门之二镜像
Docker大部分的操作都是围绕三大核心概念:镜像.容器.仓库.学Docker首先得了解这几个词.这几个词可能平时也会有涉及,但Docker中可能不是同样得概念. 一.三大核心概念 镜像:可能在安装软 ...
- 每天学点SpringMVC-异常处理
1. 第一步先写个Hello World 1.1 编写一个抛出异常的目标方法 @RequestMapping("/testException.do") public String ...
- 【转】Spark运行过程
http://www.cnblogs.com/1130136248wlxk/articles/6289717.html
- HDFS概述(2)————Block块大小设置
以下内容转自:http://blog.csdn.net/samhacker/article/details/23089157?utm_source=tuicool&utm_medium=ref ...
- MySQL数据备份之mysqldump使用(转)
mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...
- android-蓝牙通信
一:简介 由于项目曾经想用蓝牙通信,但由于蓝牙传输速度比较慢,最终还是没有使用蓝牙,不过还是在空闲之余研究了蓝牙通信,鉴于目前网上蓝牙这块教程并不多,尤其是从蓝牙扫描,蓝牙配对,蓝牙通信等完整的教程更 ...
- hdu4704 Sum 2013 Multi-University Training Contest 10 数论题
Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Subm ...
- 石子合并(NOI1995)
石子合并(NOI1995) 时间限制: 1 Sec 内存限制: 128 MB提交: 90 解决: 48[提交][状态][讨论版] 题目描述 在操场上沿一直线排列着 n堆石子.现要将石子有次序地合并 ...
- Oracle添加含有脏数据的约束
需求: 一个表的唯一约束被禁用期间,有脏数据进来,当启用约束时失败. 环境: -bash-4.1$ uname -a Linux dbtest1 2.6.32-279.el6.x86_64 #1 SM ...