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/

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

以下是我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的默认镜像源下载安装!

相关文章
|
3月前
|
IDE 开发工具 索引
在Python中安装第三方库
在Python中安装第三方库
1056 30
|
3月前
|
机器学习/深度学习 XML 数据可视化
python常用的第三方库有哪些?
python常用的第三方库有哪些?
814 28
|
3月前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
22天前
|
人工智能 开发者 Python
Chainlit:一个开源的异步Python框架,快速构建生产级对话式 AI 应用
Chainlit 是一个开源的异步 Python 框架,帮助开发者在几分钟内构建可扩展的对话式 AI 或代理应用,支持多种工具和服务集成。
137 9
|
1月前
|
Shell 程序员 开发者
轻松搞定在Python中构建虚拟环境
本教程教你如何使用业界公认的最佳实践,创建一个完全工作的Python开发环境。虚拟环境通过隔离依赖项,避免项目间的冲突,并允许你轻松管理包版本。我们将使用Python 3的内置`venv`模块来创建和激活虚拟环境,确保不同项目能独立运行,不会相互干扰。此外,还将介绍如何检查Python版本、激活和停用虚拟环境,以及使用`requirements.txt`文件共享依赖项。 通过本教程,你将学会: - 创建和管理虚拟环境 - 避免依赖性冲突 - 部署Python应用到服务器 适合新手和希望提升开发环境管理能力的开发者。
110 2
|
2月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
2月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
115 3
|
3月前
|
弹性计算 数据管理 数据库
从零开始构建员工管理系统:Python与SQLite3的完美结合
本文介绍如何使用Python和Tkinter构建一个图形界面的员工管理系统(EMS)。系统包括数据库设计、核心功能实现和图形用户界面创建。主要功能有查询、添加、删除员工信息及统计员工数量。通过本文,你将学会如何结合SQLite数据库进行数据管理,并使用Tkinter创建友好的用户界面。
133 2
从零开始构建员工管理系统:Python与SQLite3的完美结合
|
3月前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
3月前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
175 3

热门文章

最新文章

推荐镜像

更多