• Python打包、安装自己写的模块



    前言

    可以直接参照官网
    https://packaging.python.org/en/latest/tutorials/packaging-projects/
    不过官网打包完直接上传 PYPI 了,国内网速不允许呀,即使上传成功了,你每次 pip 安装自己的包也要等好久,目前有两个解决办法:

    1. 搭建自己的镜像仓库,把打包完成的模块上传到自己的仓库里
    2. 打成 .whl 文件,放在本地,随用随取

    ps:这篇文章采用的是第二种方法


    实现

    1.更新pip版本

    python3 -m pip install --upgrade pip
    
    • 1

    2.项目结构

    TestPackaging/
    ├── README.md
    ├── setup.py
    └── mymath/
    	├── __init__.py
    	└── operate.py
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ps:

    1. TestPackaging:项目名
    2. setup.py: 用于指定项目信息和构建方式
    3. README.md:使用帮助【非必须】
    4. mymath:包名
    5. operate:模块名

    3.文件内容

    <1>operate.py

    def add(num1, num2):
        return num1 + num2
    
    • 1
    • 2

    <2>README.md

    # 破烂小工具
    
    #### 介绍
    简单介绍
    
    #### 软件架构
    软件架构说明
    
    
    #### 安装教程
    
    1.  xxxx
    2.  xxxx
    3.  xxxx
    
    #### 使用说明
    
    1.  xxxx
    2.  xxxx
    3.  xxxx
    
    #### 参与贡献
    
    1.  Fork 本仓库
    2.  新建 Feat_xxx 分支
    3.  提交代码
    4.  新建 Pull Request
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    <3>setup.py

    from setuptools import setup, find_packages
    
    # 读取 readme 文件作为包详细描述
    with open("README.md", "r") as fh:
        long_description = fh.read()
    
    setup(
        name="mymath",													# 包名
        version="0.0.1",												# 版本号
        # keywords = ("pip", "cmd", "operate", "math"),					# 关键词
        description="My math operation",								# 简短描述【简介】
        long_description=long_description,                              # 详细描述【使用方法】
        long_description_content_type="text/markdown",                  # 指定详细描述的文本格式
        python_requires=">=3.5.0",										# python依赖版本
        license="MIT Licence",											# 指定许可证
    
        # url = "https://github.com/xxxxx",								# 项目地址
        # author = "ps",												# 作者
        # author_email = "xxx@xx.com",									# 作者邮箱
    
        install_requires=["numpy", "requests"],							# 需要安装的依赖
        # packages=["operate", ],										# 打包目录下的指定模块
        packages=find_packages(),										# 打包目录下的全部模块
        # packages=find_packages(exclude=["test", "test.*"])			# 打包除了指定模块的全部模块
        # include_package_data = True,									# 打包路径下的其他文件
        platforms="any",												# 程序适用的软件平台列表
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    ps:
    LICENSE 文件可以参照官网给出的许可证示例
    https://choosealicense.com/
    MIT License 和 GNU GPLv3 都行
    ps:

    1. MIT License:你允许你的包被别人使用并在此基础上发布闭源项目
    2. GNU GPLv3:你允许你的包被别人使用,只能在此基础上发布开源项目

    3.打包

    python setup.py bdist_wheel
    
    • 1

    打包完成后 setup.py 同级目录下会有一个 dist 文件夹,whl文件在里面

    4.安装

    pip install xxx.whl
    
    • 1

    测试

    from mymath import operate
    
    
    if __name__ == '__main__':
        print(operate.add(1, 2))
        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

  • 相关阅读:
    shell基本编程与trap的命令,用户在线例子
    人工智能 迁移学习
    sip广播10W网络有源吸顶喇叭
    Maven进阶学习指南
    Linux常用命令操作
    飞天诚信:CRM与战略同行,管理精度提升30%
    使用 Vue 3 插件(Plugin)实现 OIDC 登录和修改密码(OIDC 系统以 Keycloak 为例)
    Java安全 CC链3分析
    DO280私有仓库持久存储与章节实验
    如何安装和使用Docker
  • 原文地址:https://blog.csdn.net/weixin_43721000/article/details/125623084