自定义包的编写、打包、发布、和用pip安装全流程、工作原理
第一步:搭建你的模块
目录结构
C:User/Desktop/20210407.
│
│
├─DongshaobingDemo_pkg
│ stack.py
│ test.py
│ clock.py
│ __init__.py
├─setup.py
特别注意:
setup.py文件要与自定义模块在同一级父目录
stack.py
文件内容:
class StackException(Exception):
def __init__(self, data):
self.data = data
def __str__(self):
return self.data
class Stack(object):
def __init__(self, size=10):
self.S = []
self.size = size # 栈大小
self.top = -1 # 栈顶位置
def setSize(self, size):
# 设置栈的大小
self.size = size
def isEmpty(self):
# 判断栈是否为空
if self.top == -1:
return True
else:
return False
def isFull(self):
# 判断栈是否满
if self.top == self.size - 1:
return True
else:
return False
def peek(self):
# 查看栈顶的对象,但不移除
if self.isEmpty():
raise StackException('StackUnderflow')
else:
element = self.S[-1]
return element
def pop(self):
# 移除栈顶对象,并返回该对象的值
if self.isEmpty():
raise StackException('StackUnderflow')
else:
element = self.S[-1]
self.top = self.top - 1
del self.S[-1]
return element
def push(self, element):
# 把对象压入栈顶
if self.isFull():
raise StackException('StackOverflow')
else:
self.S.append(element)
self.top = self.top + 1
init.py文件内容
__doc__='''
DongshaobingDemo_pkg模块,用于测试
第一步:"自定义模块"
第二步:定义__init__.py文件
第三步:构建setup.py文件(放在父级目录下)
第四步:构建自定义的模块
第五步:注册Pypi账号
第六步:安装第三方包 twine(pip install twine)
第七步:upload你的模块
第八步:然后找到View at:后面的网址查看即可。
第九步:先别得意,等几个小时后pip install DongshaobingDemo_pkg试试,如果成功,哈哈哈…
第十步:原来,镜像源(pypi或conda)传到镜像(清华或百度或阿里云,哦,小度又来了)需要时间。
第十一步:分享
你可以把项目放到GitHub 上,也可以放到知乎 ,简书,上介绍你的模块。
如果你的模块好,你可以写一本教材,这样可不是发布那么简单了…你的模块
也许会被某些网站报道。
'''
name = 'DongshaobingDemo_pkg'
'''
注:
本名本人已用过,已经上传到pypi,所以您的模块不得以DongshaobingDemo_pkg命名。
'''
讲解:
此.py命名为__init__.py。
你导入模块时导入的是这个。
__doc__中的内容将会在help(‘你的模块’)时出现。
name是模块名。
setup.py
文件内容
from setuptools import setup
NAME = 'DongshaobingDemo_pkg'
VERSION = '1.0'
PACKAGES = ['DongshaobingDemo_pkg']
setup(name=NAME
, version=VERSION
, packages=PACKAGES,
description='a small pkg demos for xuzhichang and everyone of students',
long_description='''
pip install DongshaobingDemo_pkg
'''
, long_description_content_type='text/markdown'
)
讲解:
setup.py是构建模块。
NAME是模块名
VERSION是版本号
PACKAGES是包含模块
description是创作原因
long_description是长的创作原因
long_description_content_type是long_description的格式
第二步:打包自定义的模块
> 1.python setup.py check
> 2.python setup.py sdist
> 3.python setup.py sdist bdist_wheel
1.可以检查setup.py是不是正确,如果只输出running check,那么就ok了
2. 会将项目打包成一个tar.gz文件,在新生成的dist目录下
3. 会将项目打包成一个wheel文件,在新生成的dist目录下
第三步:注册Pypi账号:register pypi
终于要上传了。
Pypi,等着我!到这里来 注册点这里 登录点这里
第四步:安装上传“自定义模块”上传的第三方库twine
pip install twine
upload你的模块
twine upload dist/DongshaobingDemo_pkg-1.0*
然后找到View at:后面的网址查看即可。
先别得意,等几个小时后pip install DongshaobingDemo_pkg试试,如果成功,哈哈哈…
为什么等一天呢
在这里插入图片描述
因为
在这里插入图片描述
为什么呢
原来,镜像源(pypi或conda)传到镜像(清华或百度或阿里云,哦,小度又来了)需要时间。
昨天晚上睡觉后今天才看见。
第五步:分享(share)
你可以把项目放到GitHub 上,也可以放到知乎 ,简书,上介绍你的模块。
如果你的模块好,你可以写一本教材,这样可不是发布那么简单了…你的模块也许会被某些网站报道。
over!!!