【python】如何把你的python包发布出去(pip install)

news2024/10/2 20:26:10

python:如何把你的python包发布出去(pip install)

介绍

实际上分为两步

  1. 打包
  2. 发布

我们要发布的网站是https://pypi.org/。也就是用户通过pip install XXX,就可以安装你的包。

1 通过setuptools打包

需要我们编写setup.py

from setuptools import setup, find_packages
import os

VERSION = '0.0.5'
DESCRIPTION = 'Easily cut the video by moviepy'

setup(
    name="cut_video",
    version=VERSION,
    author="chunlei li",
    author_email="li_cl@foxmail.com",
    description=DESCRIPTION,
    long_description_content_type="text/markdown",
    long_description=open('README.md',encoding="UTF8").read(),
    packages=find_packages(),
    install_requires=['moviepy'],
    keywords=['python', 'moviepy', 'cut video'],
    data_files=[('cut_video', ['cut_video/clip_to_erase.json'])],
    entry_points={
    'console_scripts': [
        'cut_video = cut_video.main:main'
    ]
    },
    license="MIT",
    url="https://github.com/chunleili/cut_video",
    scripts=['cut_video/cut_video.py'],
    classifiers= [
        "Development Status :: 3 - Alpha",
        "Intended Audience :: Developers",
        "Programming Language :: Python :: 3",
        "Operating System :: Microsoft :: Windows"
    ]
)

其中含义请见
在这里插入图片描述

然后运行

python setup.py bdist_wheel sdist

意思是调用setuptools的setup这个函数。其中bdist表示二进制的可执行文件格式,wheel是python很常见的打包后的二进制格式(包括pyd即python动态库和元数据)。其中sdist代表源码,打包后为.tar.gz格式。

  • sdist: source distribution
  • bdist: binary distribution

打包后会多出许多东西

例如

*.egg-info
build
dist

等等

几乎都不用管。只需要在意dist目录下面的两个东西即可。那就是我们即将发布的东西。一个是源码,一个是二进制文件。

在这里插入图片描述

2 发布

需要先去 https://pypi.org/ 注册一个账号。

如果没有安装twine,需要先安装一下

pip install twine

最后上传dist目录下面的源码和二进制文件即可

twine upload dist/*

在这里插入图片描述

在这里插入图片描述

参考资料

https://zhuanlan.zhihu.com/p/276461821

https://packaging.python.org/en/latest/tutorials/packaging-projects/

https://youtu.be/tEFkHEKypLI

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

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

相关文章

数据库的事务

作者:~小明学编程 文章专栏:MySQL 格言:目之所及皆为回忆,心之所想皆为过往 目录 什么是事务? 事务的特性 原子性 一致性 持久性 独立性 事务之间的影响 脏读 不可重复读 幻读 数据库的隔离级别 读未提交…

kvm介绍

kvm里主要去介绍它的虚拟化技术,包括云计算的组成和云计算的背景。 kvm的运行原理,虚拟机的创建,虚拟机的生命周期管理。 云计算的定义 它不是一种技术,它是一种收费模式,就是通过互联网把一些主机的硬件&#xff0…

2021年我国企业服务市场投融资概况 技术服务单笔规模最大 早期融资笔数最多

一、企业服务投融资年度概况 据相关数据显示,2021年我国企业服务市场共发生2417笔投融资事件,其中,1753笔项目已披露融资金额。从月度分布来看,3月、6月、7月、8月和12月的融资数量均在200起以上,其中,12月…

[附源码]Python计算机毕业设计高校学生体温管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

Python实现:高斯滤波 均值滤波 中值滤波 Canny(边缘检测)PCA主成分分析 直方图规定化 Mean_Shift

Python实现:高斯滤波 均值滤波 中值滤波 Canny(边缘检测)PCA主成分分析 直方图规定化 Mean_Shift(文末附上整合这些函数的可视化界面并且已做打包处理) 1.高斯滤波(以下函数所有的图片路径为方便前来copy的同学&#…

微服务框架 SpringCloud微服务架构 多级缓存 46 JVM 进程缓存 46.4 实现进程缓存

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 多级缓存 文章目录微服务框架多级缓存46 JVM 进程缓存46.4 实现进程缓存46.4.1 实现进程缓存46 JVM 进程缓存 46.4 实现进程缓存 46.4.1 实…

Linux从入门到进阶学习(Ⅱ):Linux基础命令

目录 1 Linux目录结构 2 命令格式 3 目录切换命令 3.1 ls命令 3.2 选项与参数 3.3 目录切换 1.cd 2.pwd 4 路径 5 创建目录命令 6 文件操作命令 6.1 创建文件 6.2 查看文件 6.3 复制文件 6.4 移动文件 6.5 删除文件 1.rm命令 2.通配符 3.root用户 7 查找命…

C语言期末集训2(大一,超基础,小猫猫大课堂的配套练习)——分支结构

更新不易,麻烦多多点赞,欢迎你的提问,感谢你的转发, 最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!! 喵喵喵,你对我…

分库分表 15 连问,你抗的住吗?

我们去面试的时候,几乎都会被问到分库分表。 在这里整理了分库分表的15道经典面试题,大家看完肯定会有帮助的。 1. 我们为什么需要分库分表 在分库分表之前,就需要考虑为什么需要拆分。我们做一件事,肯定是有充分理由的。所以得…

技术分享-应用列表性能优化

阅读文章大约需要10分钟 目录 1.背景 2.分析 3.优化 4.成果 背景 应用存在大量的列表和图片资源加载,如首页、喵圈、直播间广播、礼物面板等, 这些列表的性能对应用性能有着不少的影响。 分析 分析-列表架构VLayout 分析-RecycleView缓存机制 分析-RecycleVi…

【记录】Ubuntu实现逻辑卷的删除

由于我的电脑上有机械硬盘和固态硬盘,所以在之前安装的Centos7系统中,定义了逻辑卷,希望将机械硬盘和固态硬盘在逻辑上当作是统一的整体,但是正因为此操作,导致在重装系统过程中,始终无法对逻辑卷进行分区&…

m基于改进PSO粒子群优化的RBF神经网络解耦控制算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 智能控制的思想最早来自傅京孙教授[,他通过人机控制器和机器人方面的研究,首先把人工智能的自觉推理方法用于学习控制系统,将智能控制概括为自动控制和人工智能…

MASM32编程完善SysInfo遇到奇怪故障,真切感受全局变量和局部变量之别……

SysInfo主要是通过WMI来获取系统信息的,但是WMI获取的操作系统信息中没有Windows操作系统是32位还是64位的内容,所以需要另外想办法编程获取,比较常见的方法是调用Windows API函数GetNativeSystemInfo()或IsWow64Process()。之前分别用MASM32…

Spring官宣新家族成员:Spring Authorization Server

8月17日,Spring官方宣布 Spring Authorization Server 已正式脱离实验状态,并进入Spring-Project家族! 背景 Spring Authorization Server (以下简称 SAS)是 Spring 团队最新开发适配 OAuth 协议的授权服务器项目&…

【react】生命周期

组件从创建到死亡会经历一些特定的阶段 React组件中包含一系列勾子函数(生命周期回调函数)会在特定的时候调用 我们 在定义组件时,会在特定的生命周期回调函数中做特定的工作 一、旧版本的生命周期 1、初始化阶段 constructor()componentWil…

CVE-2022-22965:spring参数绑定漏洞

CVE-2022-22965 博客链接:https://www.blog.23day.site/articles/73 漏洞说明 Spring framework 是Spring 里面的一个基础开源框架,其目的是用于简化 Java 企业级应用的开发难度和开发周期,2022年3月31日,VMware Tanzu发布漏洞报告&#xff…

LabVIEW创建自定义书签管理器

LabVIEW创建自定义书签管理器 书签是一种特殊的标记机制,可以添加到VI框图中。任何以井号标签(#)开头的文本都将被LabVIEW自动识别为书签。这些可用于标记代码不同部分中的待办事项或未完成的任务。当您将主题标签添加框图注释时&#xff0c…

基于java的贪吃蛇游戏-计算机毕业设计

项目介绍 本游戏采用Java环境和Eclipse开发工具,开发了一个界面美观,操作简单并且功能齐全的贪食蛇游戏,整个游戏分为了10个类,实现了游戏的开始、结束、暂停,通过了本游戏的开发,达到了学习Java及Java GU…

使用新路由器有线/无线桥接旧路由器

问题描述 已有一个无线路由器,但信号不能满足需求,遂购买新路由器对其进行桥接。经过在网上搜索和实践,成功配置,将经验记录成帖。 解决方案 无线桥接 1. 打开新路由器设置界面。(根据路由器说明说或者网上搜索对应…

新手学python,如何才能更快升职加薪,迎娶白富美,走上人生巅峰

最近在问答里发现好多咨询怎么学习python,或者学习难不难的问题,这里给大家提几点建议: 了解自己的目标 我开始学编程的时候,连基础的知识都不知道,小白的很!记得我开始看教材,就是输入“hello…