找回密码
 会员注册
查看: 31|回复: 0

手把手教你打包Python项目为whl文件

[复制链接]

4

主题

0

回帖

13

积分

新手上路

积分
13
发表于 2024-9-12 10:12:19 | 显示全部楼层 |阅读模式
目录1,打包whl文件作用2,单个Python文件打包1、程序目录2、程序内容3、打whl包4、将whl包导入环境​编辑5、查看效果6、代码验证3、多个python文件打包1、程序目录​编辑2、程序内容3、打whl包​编辑4、将whl包导入环境5、查看效果6、代码验证1,打包whl文件作用便于分发:.whl文件是一种Python分发包格式,它允许开发者将代码和资源打包在一起,方便其他用户或开发者下载和安装。兼容性:Wheel文件格式是跨平台的,可以在不同的操作系统上使用,比如Windows、Linux和macOS。安装速度:与源代码包相比,Wheel文件通常安装速度更快,因为它们是预编译的,不需要用户在安装时编译。依赖管理:Wheel文件可以包含项目的依赖信息,使得安装过程更加自动化,减少了因缺少依赖而出现的问题。版本控制:通过打包成.whl文件,可以清晰地管理不同版本的项目,便于用户选择和升级。避免污染环境:使用Wheel文件安装的包通常不会修改全局Python环境,这有助于避免不同项目间的依赖冲突。简化开发流程:开发者可以通过Wheel文件快速测试和部署他们的项目,无需担心环境配置问题。支持额外的元数据:Wheel文件可以包含额外的元数据,如项目的描述、作者信息、许可证等,有助于用户了解和使用项目。支持二进制文件:Wheel文件可以包含编译后的二进制文件,这对于包含C扩展的Python项目尤为重要,可以避免用户在安装时重新编译。提高安全性:通过使用可信的Wheel文件源,可以减少从不可信任源下载代码的风险,提高项目的安全性。2,单个Python文件打包1、程序目录在同一个文件夹whiltest下放入python程序和setup程序目录格式如下:whltestMethod.pysetup.py2、程序内容Method.pyclassMethod:def__init__(self,name,age):self.f_name=nameself.f_age=ageprint("initsuccess",self.f_name,self.f_age)defgetInfo(name,age):print(name+"#######"+age)defmy_getInfo(self):print(self.f_name,"##########",self.f_age)setup.pyfromsetuptoolsimportsetupsetup(name='Method',version='1.0',py_modules=['Method'],)3、打whl包CMD进入setup.py所在目录执行如下命令:pythonsetup.pybdist_wheel在同目录会生成多个文件夹,其中dist文件夹下就是打包成的whl包。build文件夹通常在构建完成后就不再需要了,除非需要进行调试或查看构建过程的详细信息。在发布或分发项目时,通常只关心最终生成的.whl文件。4、将whl包导入环境我使用的是anaconda3,进入对应环境执行如下命令安装:pipinstallwhl对应全路径5、查看效果6、代码验证3、多个python文件打包1、程序目录将多个py文件和__init__.py放在同一个目录下,setup.py要和此目录同级。目录格式如下:packageTestTest__init__.pyPrint.pyget_data.pysetup.py2、程序内容__init__.py内容为空Print.pydefget_info(x):print("x=",x)get_data.pydefget_data(x):x1=3*xreturnx1setup.pyfromsetuptoolsimportsetupsetup(name='test',version='1.0',description='test',author='xy',author_email='123456@qq.com',packages=['test'],)3、打whl包同样CMD进入setup.py同级目录下执行如下命令:pythonsetup.pybdist_wheel4、将whl包导入环境我使用的是anaconda3,进入对应环境执行如下命令安装:5、查看效果同单个python文件打包的五步骤;6、代码验证
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-28 06:14 , Processed in 0.738977 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表