Python全方位构建自己的第三方库--让别人pip install你的三方库

简介: 作为有一些Python经验的老司机来讲, 在实际项目中经常会封装一些特有的共有的功能使用, 一般这个py模块都在项目内容, 想拿出来在别的项目中使用需要复制拖拽功能模块, 并且不方便给别的老司机使用! 这个时候如果可以 通过 pip install xx 安装使用是不是就解决了这个弊端!<br> 作为小白来讲, 学完模块功能之后, 经常会有个困惑就是, 为什么pip install 是别的第三方库模块, 我自己写的模块能不能让别人也pip呢, 那么接下来我们就来想详细的来构建下属于自己的pip第三方库吧

Python全方位构建自己的第三方库--让别人pip install你的三方库

pip1.jpg

构建自己的第三方库整体需要以下6个步骤:

1. 第一步 成为Python官方库的开发者

2. 使用编辑器IDE实现自己的Python模块-库

3. setup设置

4. 根目录下新建README.md文件

5. 本地打包项目

6. 提交到pypi官网即可

7. 测试校验是否提交成功

1. 第一步 成为Python官方库的开发者

1.1 PyPi官网 https://pypi.org/

Python-PyPi官网

pypi1.png

1.2 注册账号

注册账号不需要手机号哟!

pypi2.png

1.3 激活邮箱

pypi3.png

2. 使用编辑器IDE实现自己的Python模块-库

IDE没有限制, 这里使用的是Pycharm

2.1 新建Python项目, 使用虚拟环境

pypi4.png

2.2 新建一个包,取名为你要上传的库的名字

pypi5.png

2.3 实现自己封装的主功能

pypi6.png

3. setup设置

项目根目录下新建setup.py文件, 此文件是打包的一些配置项, 大家可以根据自己的实际情况配置

"""A setuptools based setup module.
See:
https://packaging.python.org/guides/distributing-packages-using-setuptools/
https://github.com/pypa/sampleproject
"""

# Always prefer setuptools over distutils
from setuptools import setup, find_packages
import pathlib

here = pathlib.Path(__file__).parent.resolve()

# Get the long description from the README file
long_description = (here / "README.md").read_text(encoding="utf-8")

# Arguments marked as "Required" below must be included for upload to PyPI.
# Fields marked as "Optional" may be commented out.

setup(
 
    name="sampleproject",  # Required 项目名称
    version="2.0.0",  # Required 发布版本号
    description="A sample Python project",  # Optional 项目简单描述
    long_description=long_description,  # Optional 详细描述
    long_description_content_type="text/markdown",  # 内容类型
    url="https://github.com/pypa/sampleproject",  # Optional github项目地址
    author="A. Random Developer",  # Optional 作者
    author_email="author@example.com",  # Optional 作者邮箱
    classifiers=[  # Optional 分类器通过对项目进行分类来帮助用户找到项目, 以下除了python版本其他的 不需要改动
     
        "Development Status :: 3 - Alpha",
        # Indicate who your project is intended for
        "Intended Audience :: Developers",
        "Topic :: Software Development :: Build Tools",
        # Pick your license as you wish
        "License :: OSI Approved :: MIT License",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: 3.10",
        "Programming Language :: Python :: 3 :: Only",
    ],
   
    keywords="sample, setuptools, development",  # Optional 搜索关键字
 
    package_dir={"": "src"},  # Optional 手动指定包目录
    
    packages=find_packages(where="src"),  # Required
   
    python_requires=">=3.7, <4",  # python 版本要求
 
    install_requires=["peppercorn"],  # Optional 第三方依赖库
   
    extras_require={  # Optional
        "dev": ["check-manifest"],
        "test": ["coverage"],
    },
  
    package_data={  # Optional       包数据
        "sample": ["package_data.dat"],
    },
 
    data_files=[("my_data", ["data/data_file"])],
    
    
    entry_points={  # Optional
        "console_scripts": [
            "sample=sample:main",
        ],
    },
   
    project_urls={  # Optional 和项目相关的 其他网页连接资源
        "Bug Reports": "https://github.com/pypa/sampleproject/issues",
        "Funding": "https://donate.pypi.org",
        "Say Thanks!": "http://saythanks.io/to/example",
        "Source": "https://github.com/pypa/sampleproject/",
    },
)

部分常用的参数配置含义

pypi7.png

更多解释请前往官网查看: https://packaging.python.org/en/latest/guides/distributing-packages-using-setuptools/

以下是我codepay功能模块的配置内容

# setup.py

import setuptools
import pathlib

here = pathlib.Path(__file__).parent.resolve()
long_description = (here / "README.md").read_text(encoding="utf-8")

setuptools.setup(
    name="CodePay",
    version="1.0",
    author="LCF",
    author_email="1019197976@qq.com",
    description="codepy python library",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/codepay",
    packages=setuptools.find_packages(),
    license="Apache 2.0",
    classifiers=[
        "Development Status :: 3 - Alpha",
        "Intended Audience :: Developers",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: 3.10",
        "Programming Language :: Python :: 3 :: Only",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",

    ],
    keywords="codepay, codepay_python",
)

4. 根目录下新建README.md文件

README.md 文件创建在根目录下, 主要是给使用者一些 使用说明和注意事项,方便长片描述用的

5. 本地打包项目

进入项目的根目录执行:python setup.py sdist

pypi8.png

6. 最后一步了😁--提交到pypi官网即可

6.1 安装twine库, 方便提交

pip install twine

pypi9.png

6.2 在项目根目录-使用 twine upload dist/* 指令进行提交

pypi9.png

7. PyPi官网查看和本地验证

7.1 PyPi官网查看

pypi11.png

7.2 本地验证

pip install CodePay -i https://pypi.org/simple 

pypi12.png

小贴士: 注意本地下载安装的时候, 很多老司机是修改过的pip的镜像源的, 因为我们是刚提交到PyPi官网的, 其他镜像源是不能快速同步到我们的新第三方库的, 所以 如果安装失败, 需要指定PyPi的默认镜像源下载安装!

相关文章
|
10天前
|
数据库 Python
Python实践:从零开始构建你的第一个Web应用
使用Python和轻量级Web框架Flask,你可以轻松创建Web应用。先确保安装了Python,然后通过`pip install Flask`安装Flask。在`app.py`中编写基本的&quot;Hello, World!&quot;应用,定义路由`@app.route(&#39;/&#39;)`并运行`python app.py`启动服务器。扩展应用,可添加新路由显示当前时间,展示Flask处理动态内容的能力。开始你的Web开发之旅吧!【6月更文挑战第13天】
35 2
|
15天前
|
Java Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之部署python项目时,构建过程报错,怎么解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
7天前
|
关系型数据库 MySQL 数据库
如何使用Python的Flask框架来构建一个简单的Web应用
如何使用Python的Flask框架来构建一个简单的Web应用
16 0
|
22天前
|
存储 数据管理 测试技术
构建Python构建自动化测试框架(原理与实践)
当谈到软件质量保证时,自动化测试是一个不可或缺的步骤。Python作为一种简单易学的编程语言,具有丰富的测试框架和库,使得构建自动化测试框架变得相对简单。本文将介绍如何使用Python构建自动化测试框架,包括选择合适的测试框架、编写测试用例、执行测试和生成报告等方面。
构建Python构建自动化测试框架(原理与实践)
|
3天前
|
数据采集 机器学习/深度学习 数据可视化
利用Python和Pandas库构建高效的数据分析流程
在数据驱动的时代,数据分析已成为企业决策的关键环节。本文介绍如何利用Python编程语言及其强大的数据分析库Pandas,构建一套高效且可扩展的数据分析流程。与常规的数据分析流程不同,本文不仅涵盖数据加载、清洗、转换等基础步骤,还强调数据可视化、模型探索与评估等高级分析技巧,并通过实际案例展示如何在Python中实现这些步骤,为数据分析师提供一套完整的数据分析解决方案。
|
7天前
|
存储 缓存 Linux
Python pip常用功能说明
pip 是 Python 的一个包管理工具,可以让用户方便地下载和安装 Python 包。pip 可以从 PyPI (Python Package Index) 上下载这些包,并且自动处理依赖关系。PyPI 是一个存储着 Python 包的仓库,用户可以从这个仓库中搜索、下载和安装 Python 包。在使用 pip 安装 Python 包时,由于 PyPI 的服务器位于国外,下载速度可能比较慢,因此我们可以使用国内的镜像源来提高下载速度。常见的国内镜像源有阿里云、清华大学等。
12 6
|
11天前
|
Python 存储 数据处理
【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
|
13天前
|
消息中间件 监控 调度
构建Python中的分布式系统结合Celery与RabbitMQ
在当今的软件开发中,构建高效的分布式系统是至关重要的。Python作为一种流行的编程语言,提供了许多工具和库来帮助开发人员构建分布式系统。其中,Celery和RabbitMQ是两个强大的工具,它们结合在一起可以为你的Python应用程序提供可靠的异步任务队列和消息传递机制。
|
20天前
|
机器学习/深度学习 存储 数据挖掘
看见更大的Python世界:Python生态系统中的第三方库的安装
看见更大的Python世界:Python生态系统中的第三方库的安装
22 1
|
1天前
|
Linux Python
Centos7下更换python pip3源为阿里源
Centos7下更换python pip3源为阿里源
11 0