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

相关文章
|
2月前
|
异构计算 Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
312 1
|
2月前
|
人工智能 Shell Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
211 0
|
机器学习/深度学习 XML 数据可视化
python常用的第三方库有哪些?
python常用的第三方库有哪些?
2193 59
|
IDE 开发工具 索引
在Python中安装第三方库
在Python中安装第三方库
2576 30
|
7月前
|
程序员 测试技术 开发工具
怎么开发Python第三方库?手把手教你参与开源项目!
大家好,我是程序员晚枫。本文将分享如何开发Python第三方库,并以我维护的开源项目 **popdf** 为例,指导参与开源贡献。Popdf是一个PDF操作库,支持PDF转Word、转图片、合并与加密等功能。文章涵盖从fork项目、本地开发、单元测试到提交PR的全流程,适合想了解开源贡献的开发者。欢迎访问[popdf](https://gitcode.com/python4office/popdf),一起交流学习!
261 21
怎么开发Python第三方库?手把手教你参与开源项目!
|
Python
Python 三方库下载安装
Python 三方库下载安装
185 1
|
资源调度 前端开发 JavaScript
Python学习二:Python包管理器pip
这篇文章介绍了Python包管理器pip的基本概念、基本操作、如何更改下载源为国内镜像以加速下载,以及如何指定安装包的位置。
548 0
Python学习二:Python包管理器pip
|
Python
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
809 3
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
1493 0
|
Python
Python pip 操作的几种用法
Python pip 操作的几种用法
369 0

热门文章

最新文章

推荐镜像

更多
下一篇
oss云网关配置