打包自定义python模块发布到pypi

简介: 发布pypi

准备要发布的模块

自己写了个日志模块xlog,要把该模块发布到pypi,目录结构如下:

xlog
├── LICENSE
├── README.md
├── setup.py
├── tests
└── xlog
    ├── __init__.py
    └── info.py

LICENSE:许可证,根据情况选一个
setup.py:打包用到的配置
xlog:核心代码
tests:测试代码

# info.py

import datetime


def info(msg):
    print(datetime.datetime.now(), msg)
    

setup.py

给setuptools提供一些模块相关的信息,示例:

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()
    
setuptools.setup(
    name="xlog", 
    version="1.0", 
    author="xxx", 
    author_email="xxx@xxx.com", 
    description="",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/xxx", 
    packages=setuptools.find_packages(), 
    classifiers=[
        "Intended Audience :: Developers",
        "License :: OSI Approved :: Apache Software License",
        "Programming Language :: Python",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Topic :: Software Development",
    ],
    install_requires=[
    ],
    python_requires='>=3.6',
)

默认情况下只打包py文件,如果包含其它文件比如.so格式,增加以下配置:

    package_data={
        "xlog": [
            "*.py",
            "*.so",
        ]
    },

打包

安装打包依赖:

pip install -U setuptools wheel

打包:

python setup.py sdist bdist_wheel

生成build、dist、xlog.egg-info三个目录,把dist目录上传至pypi即可。

上传

需要事先注册pypi账号
安装发布工具:

pip install -U twine

发布:

twine upload --repository-url https://upload.pypi.org/legacy/  dist/*

新注册的账号第一次发布的时候会报错,意思是邮箱未激活,登陆邮箱即可看到提醒激活的邮件。

测试

pip install xlog

from xlog import info

print(info.info("xxx"))

其他

在打包之前,最好先在本地测试,确保正确再发布

本地测试

在项目目录执行

python setup.py install

然后在其他项目中pip install测试。

目录
相关文章
|
9月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
1033 7
|
9月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
792 0
|
10月前
|
缓存 监控 供应链
京东自定义 API 操作深度分析及 Python 实现
京东开放平台提供丰富API接口,支持商品、订单、库存等电商全链路场景。通过自定义API组合调用,可实现店铺管理、数据分析、竞品监控等功能,提升运营效率。本文详解其架构、Python实现与应用策略。
|
10月前
|
缓存 监控 供应链
唯品会自定义 API 自定义操作深度分析及 Python 实现
唯品会开放平台提供丰富API,支持商品查询、订单管理、促销活动等电商全流程操作。基于OAuth 2.0认证机制,具备安全稳定的特点。通过组合调用基础接口,可实现数据聚合、流程自动化、监控预警及跨平台集成,广泛应用于供应链管理、数据分析和智能采购等领域。结合Python实现方案,可高效完成商品搜索、订单分析、库存监控等功能,提升电商运营效率。
|
9月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1573 68
|
9月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
736 4
|
10月前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
283 4
|
9月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
812 0
|
9月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
1273 0
|
10月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
838 0

推荐镜像

更多