Python程序发布到 PyPI
2018-04-28 本文已影响16人
vcancy
PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。PyPI推荐使用pip包管理器来下载第三方库。本文记录如何发布自己的程序到Pypi。
- 注册Pypi账号
- 编写setup.py文件
- 本地打包测试
- 发布到Pypi
注册Pypi账号
想要发布程序到Pypi必须到 https://pypi.org/ 申请Pypi账号
编写setup.py文件
setup.py文件用来描述了项目基础信息以及项目如何打包和运行
以下是一个简洁的例子 项目源码:https://github.com/vcancy/pypi-demo
注意:setup.py文件在项目根目录下
# -*- coding:utf-8 -*-
try:
from setuptools import setup, find_packages
except:
from distutils.core import setup
from codecs import open
from os import path
#版本号
VERSION = '0.0.1'
#发布作者
AUTHOR = "vcancy"
#邮箱
AUTHOR_EMAIL = "happiness1019@gmail.com"
#项目网址
URL = "https://github.com/vcancy/spider80s"
#项目名称
NAME = "pypidemo"
#项目简介
DESCRIPTION = "desc"
#LONG_DESCRIPTION为项目详细介绍,这里取README.md作为介绍
here = path.abspath(path.dirname(__file__))
with open(path.join(here, 'README.md'), encoding='utf-8') as f:
LONG_DESCRIPTION = f.read()
#搜索关键词
KEYWORDS = "demo"
#发布LICENSE
LICENSE = "MIT"
#包
PACKAGES = ["demo"]
#具体的设置
setup(
name=NAME,
version=VERSION,
description=DESCRIPTION,
long_description=LONG_DESCRIPTION,
classifiers=[
'License :: OSI Approved :: MIT License',
'Programming Language :: Python',
'Intended Audience :: Developers',
'Operating System :: OS Independent',
],
#指定控制台命令
entry_points={
'console_scripts': [
'demo = demo:main',#pip安装完成后可使用demo命令调用demo下的main方法
],
},
keywords=KEYWORDS,
author=AUTHOR,
author_email=AUTHOR_EMAIL,
url=URL,
license=LICENSE,
packages=PACKAGES,
install_requires=[],#依赖的第三方包
include_package_data=True,
zip_safe=True,
)
本地打包测试
python setup.py sdist
执行后会在项目下新建一个dist目录,里面会生成一个.gz后缀的压缩包
pip install dist/pypidemo-0.0.1.tar.gz
通过该命令可以安装这个包
最后执行相关的命令测试是否正常
demo
发布到Pypi
上传生成的包,可以使用setuptools,或者twine上传,推荐使用twine上次,因为使用setuptools上传时,你的用户名和密码是明文或者未加密传输
1.通过setuptools上传
python setup.py sdist upload
2.twine上传
pip install twine
twine upload dist/pypidemo-0.0.1.tar.gz