Python: 打包发布到PyPi上

news2025/1/16 1:08:14

经常会碰到python包要打包成sdk放到PyPi上开源的情况。

下面的操作具体参考:https://packaging.python.org/en/latest/tutorials/packaging-projects/。

一、准备
1、pyproject.toml
我的具体如下

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "dbpystream"
version = "0.6"
authors = [
  { name="songroom", email="rustroom@163.com" },
]
description = "A data api "
readme = "README.md"
requires-python = ">=3.6"
classifiers = [
    "Programming Language :: Python :: 3.6",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
]

2、LICENSE,格式内容
具体找链接 copy一下。

3、README.md
这个自己整一下即可以。这个是markdown格式
4、test目录 ,暂时弄一个空目录即行

在这里插入图片描述
二、打包操作
我是在windows平台下打包的:具体如下,

py -m pip install --upgrade pip setuptools wheel 
py -m pip install --upgrade build

在打包的目录下:

py -m build

在这里插入图片描述

这样,就生成了dist目录及相关的.gz和whl文件。
在这里插入图片描述三、上传PyPi
1、安装上传工具:

py -m pip install --upgrade twine

如果权限有问题,不妨试试用–user用户:

 py -m pip install --user --upgrade twine

2、上传
在指定的包文件目录下,

py -m twine upload --repository testpypi dist/*

四、验证

pip install XXXX

五、问题

1、pip升级问题

ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。: 'c:\\python310\\lib\\site-packages\\pip-21.2.3.dist-info\\entry_points.txt'
Consider using the `--user` option or check the permissions.

报错信息中推荐使用 --user 命令,

C:\Python310\python.exe -m pip install --user  --upgrade pip

后面解决。

PS D:\dbpystream> pip -V      
pip 22.3.1 from C:\Users\****\AppData\Roaming\Python\Python310\site-packages\pip (python 3.10)

成功升级。

六、另外方法:
https://blog.csdn.net/weixin_43804047/article/details/125843871
1、准备
(1)setup.py文件,这个不详述,到处都有介绍。

(2)安装好打包 工具

python3 -m pip install --user --upgrade setuptools wheel

2、打包,会生成两个文件

python3 setup.py sdist bdist_wheel

3、上 传
(1)安装上传工具

python3 -m pip install --user --upgrade twine

(2)上传pypi

 twine upload dist/*

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/24206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

atguigu8 集群

0. 集群介绍 (1)集群的目标 • 高可用(High Availability),是当一台服务器停止服务后,对于业务及用户毫无影 响。 停止服务的原因可能由于网卡、路由器、机房、CPU负载过高、内存溢出、自 然灾害等不可预…

基于Matlab使用线性FM波形对带状合成孔径雷达系统建模(附源码)

目录 一、合成孔径雷达成像 二、雷达配置 三、场景配置 四、SAR 信号模拟 五、总结 六、程序 此示例说明如何使用线性 FM (LFM) 波形对基于带状图的合成孔径雷达 (SAR) 系统进行建模。SAR是一种侧视机载雷达,与真实…

布隆过滤器原理,优缺点

介绍: 位图:int[10],每个int类型的整数是4*832个bit,则int[10]⼀共有320 bit,每个bit⾮0即1,初始化时都是0 添加数据时:将数据进⾏hash得到hash值,对应到bit位,将该bit改…

Koa.js搭建简单服务器,连接数据库

Koa.js搭建简单服务器,连接数据库1. 环境node v7.6版本以上2. 创建服务安装依赖3. 根目录新建index.js,新建router.js,controller文件夹4. 浏览器访问5. 连接mysql6. 查询测试7、其它1. 环境node v7.6版本以上 2. 创建服务安装依赖 新建文件…

Origin绘制折线图

Origin常用功能见: Origin常用功能_Dezeming的博客-CSDN博客Origin支持各种各样的2D/3D图形。Origin中的数据分析功能包括统计,​信号处理,曲线拟合以及峰值分析。Origin中的曲线拟合是采用基于Levernberg-Marquardt算法(LMA&…

软件设计模式复习

一、统一建模语言 1.统一建模语言知识点 二、面向对象设计原则 史上最全设计模式导学目录(完整版) 三、设计模式概述 1.定义:设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代…

Go 语言报错 StackGuardMultiplier redeclared in this block

前言 最近在 GitHub 刷到了 GitHub - golang-china/gopl-zh: Go语言圣经中文版, 然后又是周末,就起了玩心。搞一个 Go 玩玩,去 The Go Programming Language下载了 Go 语言安装包,一路默认安装。然后打开 VS Code 安装 Extensio…

5个编写技巧,有效提高单元测试实践

1. 什么是单元测试 “在计算机编程中,单元测试又称为模块测试,是针对程序模块来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最…

PPT的使用技巧(一):对齐、文字填充、柱状图填充

1、快速对齐 在制作PPT时,需要将绘制的几个图形进行对齐,如果用人工进行对齐,则效果会很差,且耗时严重。如下图所示为未对齐时的情况,可以发现4个矩形在水平、垂直方向均不对其。 我们需要将其进行对齐后变成如下效果…

1. Windows 安装 elasticsearch-8.5.1 和 kibana

1. 准备下载文件 Elasticsearch 下载地址: https://www.elastic.co/downloads/elasticsearch Kibana 下载地址: https://www.elastic.co/downloads/kibana 2.启动es 1、配置文件:注意ip用个人ip别用localhost # Elasticsearch Configur…

面板数据熵值法计算综合指数Stata代码(附样本数据和结果)

面板数据熵值法计算综合指数Stata代码(附样本数据和结果) 熵值法是指用来判断某个指标的离散程度的数学方法。离散程度越大,该指标对综合评价的影响越大。可以用熵值判断某个指标的离散程度。 在信息论中,熵是对不确定性的一种度…

jasperreports6.12.2 could not load the following font解决方法

jasperreports通过Java代码生成PDF的时候不能获取中文字体,报错提示如下: net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font: pdfFontName: STSong-Light pdfEncoding: Identity-H isPdfEmbedded : true本次环境&…

聊一聊华为云弹性公网IP的那些事儿

聊一聊华为云弹性公网IP的那些事儿 如今,企业上云已成为热门话题,云可以驱动流程创新和业务创新,成为企业新的利润增长点,被看成是企业实现数字化转型的必经之路。弹性公网IP作为一种网络基础能力,也是华为云客户日常…

【Linux】多线程基础

文章目录1.线程的基本概念1.1重定义进程1.2Linux下的线程2.多级页表3.线程VS进程3.1线程的优缺点3.2线程异常3.3线程用途3.4线程与进程的关系4.线程控制4.1线程创建4.2线程等待4.3进程终止4.4线程分离5.线程ID与线程结构1.线程的基本概念 在一个程序里的一个执行路线就叫做线程…

树莓派系统镜像备份

SD卡系统镜像备份引言1、下载镜像备份脚本2、查看sd卡设备名称3、复制镜像4、压缩镜像引言 SD卡系统镜像备份有多种方式,最简单粗暴的是使用Win32diskImager工具,将SD卡的镜像直接读取,但是该种方式最大的缺陷就是读取的镜像空间太大。比如在…

a股level2数据接口的最优委托信息

a股level2数据接口除了提供逐笔成交记录这个信息外,还提供了最优委托信息,也就是盘口中前50笔订单的委托数量明细。 Level-1提供的数据并不可以知道委托了xxx手是有多少人下的,以及每个人下了多少的明细。但是在Level-2中就能显示卖一处前50…

Head First设计模式(阅读笔记)-02.观察者模式

气象监测应用 建立一个应用,利用WeatherData对象取得气象站的数据,并更新三个布告板:目前状况、气象统计和天气预报 要求 WeatherData类具有getter方法获取温度、湿度和气压获取到新的数据时会调用measurementsChanged方法当有新数据时三个布…

WebVR

WebVR 文章目录WebVR1. 前言2. 在线示例3. 关于开发4. 参考链接1. 前言 WebVR技术可以实现在浏览器端接通VR设备,在VR模式下进行交互。 2. 在线示例 三维模型网站Sketchfab支持在VR模式下预览三维模型:https://sketchfab.com/3d-models/kirkaldys-tes…

从后端角度看安全

跨站脚本攻击(XSS) 什么是XSS 跨站脚本工具,全程是Cross Site Script,为了和CSS 区分,所以叫XSS。 XSS 攻击,通常指黑客通过HTML注入,来纂改了网页,插入恶意脚本。 人话就是把用户…

OTG 配置为U盘

目录 硬件环境及目标 配置脚本 问题1 ,创建g1 目录失败 问题1 的解决 问题2 ,目录不存在 访问存储卡 综述 网上很多资料介绍通过configfs将OTG 口配置为U盘的资料,本文记录实际操作及遇到的问题。 硬件环境及目标 硬件基本结构如下图。 …