2024一站式解决 python打包代码,发布到pypi

2024-05-15 20:12

本文主要是介绍2024一站式解决 python打包代码,发布到pypi,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2024一站式解决 python打包代码,发布到pypi

文章目录

  • 2024一站式解决 python打包代码,发布到pypi
  • 一、前言
  • 二、pypi账户注册与配置
    • 2.1 账户注册
    • 2.2 双因素认证
    • 2.3 API token生成
  • 三、代码打包
    • 3.1 准备代码
    • 3.2 编写setup.py文件
    • 3.3 LICENSE
      • 3.3.1 常见的开源许可证
    • 3.4 构建包
      • 3.4.1 环境安装
      • 3.4.2 打包
      • 3.4.3 上传包到pypi
  • 四、测试与更新
    • 4.1 上传pypi库测试
    • 4.2 库更新

一、前言

各位开发者你们好,在这个万众创新的时代,发布自己的代码到pypi上逐渐变越发常见,不过网上教程良莠不齐,受限于平常时间,只能简单整理一下,下面是具体步骤。

个人跑通pypi上传项目全流程大概耗时40分钟左右,请预留一定时间,跟完全流程。

二、pypi账户注册与配置

2.1 账户注册

在代码正式发布到pypi之前,你需要提前完成pypi账户注册和配置
pypi地址:https://pypi.org/
在这里插入图片描述
在这里按照信息填完,申请注册即可。
注:邮箱可能会被归类到垃圾邮箱。如果在收件箱没有找到可以看看垃圾邮箱。
在这里插入图片描述

2.2 双因素认证

注册账号,注册后,需要双因素认证,可使用恢复代码、usb、扫码(支持 TOTP 标准的常用扫码工具,Google Authenticator、Authy、Microsoft Authenticator、LastPass Authenticator)
本人的双因素认证是使用了:恢复代码和Microsoft Authenticator这个扫码工具
其他TOTP标准扫码工具集如下:https://pypi.org/help/#totp
在这里插入图片描述
认证流程的话就是下载后,扫认证码即可(很显眼这个码,不会认错的),具体使用哪个TOTP扫码工具各位酌情选择。

2.3 API token生成

在pypi账号设置,Account settings中,创建token,创建后记录好API token,在代码上传的时候会用到。
在这里插入图片描述

三、代码打包

3.1 准备代码

一个根目录,包含所有代码。

  1. 一个 setup.py 文件,其中包含有关您的包的信息(名称、版本、依赖等)。
  2. 可选的 README.md 或 README.rst 文件,说明您的项目。
  3. 一个 LICENSE 文件,说明您的包的许可证。
  4. 一个包含 Python 代码的子目录。
  • my_package/
    setup.py
    README.md
    LICENSE
    my_package/
    • init.py
      module1.py
      module2.py

3.2 编写setup.py文件

from setuptools import setup, find_packagessetup(name='my_package',version='0.1',packages=find_packages(),description='A simple example package',long_description=open('README.md').read(),# python3,readme文件中文报错# long_description=open('README.md', encoding='utf-8').read(),long_description_content_type='text/markdown',url='http://github.com/yourusername/my_package',author='Your Name',author_email='your.email@example.com',license='MIT',install_requires=[# 依赖列表],classifiers=[# 分类信息]
)

version:版本号。
my_package:包含 Python 代码子目录的名称。
description:描述。
long_description:读取readme文件
url:可不填
license:证书类型(下面说明)

3.3 LICENSE

在软件和开源项目中,LICENSE 文件非常重要,它定义了他人可以如何使用、修改、共享你的代码。LICENSE 文件通常包含了特定的许可证全文,这个许可证规定了对代码的使用权限和限制。

3.3.1 常见的开源许可证

  • MIT License:一种非常宽松的许可证,允许他人几乎无限制地使用你的代码。

  • GNU General Public License (GPL):要求任何分发的软件或其衍生品都必须开源。

  • Apache License 2.0:允许商业使用,但要求保留版权和许可证声明。

  • BSD License:一种简单的许可证,有几个不同的变体,但通常都很宽松。

一个典型的 MIT 许可证:

MIT LicenseCopyright (c) [year] [fullname]Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

在这个例子中,你需要将 [year] 替换为当前年份,[fullname] 替换为你的名字或组织名。

3.4 构建包

3.4.1 环境安装

pip install wheel
pip install twine  # twine 是一个用于上传包到 PyPI 的工具。
pip install setuptools 

3.4.2 打包

setup.py层级,执行命令:

python setup.py sdist bdist_wheel

3.4.3 上传包到pypi

twine upload dist/*

输入2.3 生成API Token
在这里插入图片描述
注:setup.py中,名称不能与已有的重复
上传成功后的运行示意图如下:
在这里插入图片描述

四、测试与更新

4.1 上传pypi库测试

pip install my_package

在这里插入图片描述
安装成功!

注:如果之前换了清华源,可能上传后要过一段时间才能从清华源安装。方式二就是临时从pypi进行下载如:

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

4.2 库更新

(1)更新的时候需要删掉之前生成的dist
在这里插入图片描述
(2)setup.py 上更新Version
(3)重新执行一遍3.4.2 打包和3.4.3 上传包到pypi

到这里这项上传到pypi的小技能就过完了,如果有什么问题欢迎在评论区中留言。

这篇关于2024一站式解决 python打包代码,发布到pypi的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/992809

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部