• Pypi发布上传你自己的Python库


    Pypi上传包

    一、准备

    Windows环境

    *以下教程只能在Windows上执行,mac系统不能使用

    注册账号

    你需要在Pypi上注册一个账号。Pypi

    二、安装必要的库

    setuptools

    原则上安装了pip的环境都有setuptools,但并不影响你去尝试升级一下它。

    pip install --upgrade setuptools
    

    twine

    这是一个简化将库发布到Pypi上流程的工具,具体的使用之后会讲到。

    pip install --upgrade twine
    

    三、编写核心代码

    文件结构

    接下来我们就可以编写自己的代码了,要注意源代码文件夹(仓库里的my_package文件夹)的名字与setup.py里配置的包名(Name)要一致。
    另外在重新上传之前我们要修改__version__.py里的版本号,以免覆盖了以前的上传(相信会有人是需要之前版本的库的)。
    最终的代码结构:

    │  LICENSE
    
    │  README.md
    
    │  setup.py
    
    └─以封装的模块名为文件夹名
    	
    		__init__.py
    
            
    

    编辑setup.py

    import setuptools
    
    
    
    setuptools.setup(
        name="multable", # Replace with your own username  #自定义封装模块名与文件夹名相同
        version="0.0.1", #版本号,下次修改后再提交的话只需要修改当前的版本号就可以了
        author="李厚奇", #作者
        author_email="884359533@qq.com", #邮箱
        description="调用此方法可打印9*9乘法表", #描述
        long_description='调用此方法可以打印9*9乘法表', #描述
        long_description_content_type="text/markdown", #markdown
        url="https://github.com/tanxinyue/multable", #github地址
        packages=setuptools.find_packages(),
        classifiers=[
            "Programming Language :: Python :: 3",
            "License :: OSI Approved :: MIT License", #License
            "Operating System :: OS Independent",
        ],
        python_requires='>=3.7',  #支持python版本
    )
    

    代码逻辑的封装

    编辑以封装的模块名为文件夹名下的 __ init__.py文件。
    例如:打印九九乘法表

    def multiplication():
        for i in range(1, 10):
            for j in range(1, i+1):
                print('{}x{}={}	'.format(j, i, i*j), end='')
            print()
     
    

    四、打包上传

    提交库到Pypi供别人下载

    在setup.py的同级目录下运行以下命令。

    python setup.py sdist
    

    然后运行

    twine upload dist/*
    

    注意要输入Pypi账号和密码。

    五、下载封装的Python模块

    以我封装的9*9乘法表为例,模块名为multable

    pip install multable
    

    使用

     import multable
     
     multable.multiplication() #multable是模块名称,multiplication() 是封装的函数名称,调用即可
    
    

    最终效果

    1x1=1	
    1x2=2	2x2=4	
    1x3=3	2x3=6	3x3=9	
    1x4=4	2x4=8	3x4=12	4x4=16	
    1x5=5	2x5=10	3x5=15	4x5=20	5x5=25	
    1x6=6	2x6=12	3x6=18	4x6=24	5x6=30	6x6=36	
    1x7=7	2x7=14	3x7=21	4x7=28	5x7=35	6x7=42	7x7=49	
    1x8=8	2x8=16	3x8=24	4x8=32	5x8=40	6x8=48	7x8=56	8x8=64	
    1x9=9	2x9=18	3x9=27	4x9=36	5x9=45	6x9=54	7x9=63	8x9=72	9x9=81
    
  • 相关阅读:
    sqlserver数据导入问题:报错“对COM组件的调用返回了错误HRESULT E_FAIL”
    删除文件夹提示”该项目不在请确认该项目位置“
    delphi三层DCOM架构
    sqlserver 将店铺表转换成可以用in查询的字符串
    Delphi如何获取一个字符串再另一个字符串中最后一次出现的位置
    c# 通过地址下载流然后保存文件到本地
    使用SQL语句清空数据库所有表的数据
    SqlServer 查询的时候过滤条件有参数导致速度很慢的问题-参数嗅探
    delphi和C# 保存exe文件到数据库
    DELPHI 多线程(TThread类的实现)
  • 原文地址:https://www.cnblogs.com/lihouqi/p/13952484.html
Copyright © 2020-2023  润新知