百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python 项目代码写完了,然后怎么打包和发布?

off999 2024-09-16 00:52 27 浏览 0 评论

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?


喂,开源么?



接下来小帅b就跟你说说,如何打包你的代码。


就拿我们上次演示的 用 Python 开发一个 「个人计划 todolist」 为例,写完代码之后,代码的目录是这样的:



在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:



这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别类的安排好。


在 package 中,还创建了一个 你常常看到的 __init__.py 到底是个啥? 仪式感一下。


为了让别人知道你是认真对待这个项目的,你可以在项目文件中创建一个 tests 目录,在里面测试你的代码:



接着可以创建一个 LICENSE,用来说明你的这个项目可以被怎么使用?是不是需要声明来源,是不是可以商用?别人用你的项目去搞事情如何避免被抓去吃牢饭等。



接着再创建一个 README 文件,来说明你这个项目是干什么的,如何使用等描述。



现在你的项目文件目录就有点人模人样了:



接下来要创建一个比较重要的文件了 —— setup.py,这个文件主要用来描述你的项目信息,好让 setuptools 打包工具来帮你打包项目。


在根目录下创建一个 setup.py 文件,按以下的方式来写你的项目信息:



每个参数都是什么意思呢?我来给你说明一下:


long_description:对项目比较长的描述,我们可以直接从 你刚刚写的 README 文件读取。



name: 你定义的包名,可以用字母、数字、下划线,需要确保唯一性。


version: 项目的版本号。


author: 你(作者)的名称。


author_email: 你(作者) 的邮箱。


description: 项目的简要描述。


long_description_content_type:长描述内容的使用的标记类型,一般为 markdown 或者 rst。


url: 你这个项目的主页地址,也可以直接链接到你这个项目的Github 地址上面去。


include_package_data: 是否添加 py 以外的文件。


package_data: 需要添加 Python 的额外文件列表。


packages: 直接用 setuptool 找到你项目所有相关的包列表。


classifiers: 附加说明,比如这里写的就是使用于 Python3 版本,使用的是 MIT 协议,独立于 OS。


python_requires: python 版本要求。


那么现在,你的项目目录应该是这样子的:



接下来就可以打包了。


如果你之前没有安装过 setuptools 和 wheel 可以先安装一波:


python3 -m pip install --upgrade setuptools wheel



然后在你的项目根目录下,使用如下命令打包:


python3 setup.py sdist bdist_wheel



这时候你的目录会增加这么些文件:



这样就算打包好了,在 dist 目录中,以 tar.gz 结尾的是你项目的源文件,而以 .whl 结尾的就是构建好了给别人使用的发行版。


那么如何将你打包好的项目发布出来,给别人使用呢?


其实之前有说过了,这里再简单的说一下吧:


先安装一下 twine:


python3 -m pip install twine


接着使用 twine 将你打包好的文件上传到 pypi 上面去:


twine upload dist/*


这时候它会提示你输入 pypi 的账号密码:



没有怎么办?去注册一个呗,到以下链接注册:

https://pypi.org/account/register/


接着输入你的账号密码,就可以上传上去了:



这时候别人就可以通过 pip 来安装你的项目了:



像这样:



然后就可以给别人使用你的包了:



你在 pip install 的时候,其实就是下载你上传的 whl 文件然后安装:



如果你不想开源,只想给你朋友使用的话,你也可以直接把 dist 这个目录下的文件发给他,让他自行安装一波就可以使用了:



ok,以上就是今天小帅b给你带来的分享,希望对你有帮助,那么我们下回见,peace!


关注我

学习 Python 没烦恼

相关推荐

实战:用 Python+Flask+Echarts 构建电商实时数据大屏

在电商运营中,实时掌握销售趋势、用户行为等核心数据是决策的关键。本文将从实战角度,详解如何用Python+Flask+Echarts技术栈,快速搭建一个支持实时更新、多维度可视化的电商数据大屏,帮...

DeepSeek完全使用手册:从新手到高手的2000字实操指南

一、工具定位与核心功能矩阵(200字)DeepSeek是一款专注于深度推理的强大AI助手,其功能丰富多样,可归纳为4大能力象限:plaintext差异化优势:DeepSeek支持最长达16Ktok...

Python绘制可爱的图表 cutecharts

一个很酷的python手绘样式可视化包——可爱的图表cutecharts。Cutecharts非常适合为图表提供更个性化的触感。Cutecharts与常规的Matplotlib和Seabo...

第十二章:Python与数据处理和可视化

12.1使用pandas进行数据处理12.1.1理论知识pandas是Python中最常用的数据处理库之一,它提供了高效的数据结构和数据分析工具。pandas的核心数据结构是Serie...

5分钟就能做一个Excel动态图表,你确定不学学?(纯gif教学)

本文说明下图是一个比较酷炫的Excel动态图表,最难的部分就是用到了一个复选框控件。其实这个控件我很早就见过,但是不会用呀!望洋兴叹。这次呢,我也是借着这个文章为大家讲述一下这个控件的使用。本文没有...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

如何使用 Python 将图表写入 Excel

将Python生成的图表写入Excel文件是数据分析和可视化中常见的需求。Python提供了多种库(如matplotlib、openpyxl和xlsxwriter)来实现这一功能。本文...

Excel 图表制作太痛苦?用 Python 生成动态交互图表

做个动态图表花了3小时?你该换方法了!上周帮销售部做季度汇报图表,Excel操作把我整崩溃了——插入折线图后发现数据源选错,重新选择又得调格式想做动态筛选图表,捣鼓"开发工具"...

Python Matplotlib 入门教程:可视化数据的基石

一、简介Matplotlib是Python中最流行的数据可视化库,提供从简单折线图到复杂3D图形的完整解决方案。其核心优势在于:o灵活性强:支持像素级样式控制o兼容性好:与NumPy、Pa...

20种Python数据可视化绘图 直接复制可用

本文介绍20种python数据绘图方法,可直接用于科研绘图或汇报用图。1.折线图(LinePlot)-描述数据随时间或其他变量的变化。importmatplotlib.pyplotasp...

Python os模块完全指南:轻松玩转文件管理与系统操作

Pythonos模块完全指南:轻松玩转文件管理与系统操作os模块是Python与操作系统对话的"瑞士军刀",学会它能让你轻松管理文件、操控路径、获取系统信息。本教程通过场景化案例+...

Python中h5py与netCDF4模块在Anaconda环境的下载与安装

本文介绍基于Anaconda环境,下载并安装Python中h5py与netCDF4这两个模块的方法。h5py与netCDF4这两个模块是与遥感图像处理、地学分析等GIS操作息息相关的模块,应用...

python中的模块、库、包有什么区别?

一文带你分清Python模块、包和库。一、模块Python模块(Module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句。模块能定义函数,类和变...

centos7 下面使用源码编译的方式安装python3.11

centos7下面使用源码编译的方式安装python3.11,步骤如下:cd/root#只是将python3.11的安装包下载到/root目录下wgethttps://www.python.o...

Python其实很简单 第十四章 模块

模块是一组程序代码,可以是别人已经写好的,也可以是自己编写的,但都是已经存在的,在编程时直接使用就可以了。模块机制的最大好处就是程序员不再编写重复的代码,而直接利用已有的成果,这样就能将更多的精力投入...

取消回复欢迎 发表评论: