第 46课 自定义包的编写、打包、发布、和用pip安装全流程、工作原理

自定义包的编写、打包、发布、和用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!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愿与你共信仰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值