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

 更新时间:2025年07月18日 10:47:59   作者:今夕是何年,  
Wheel文件可以包含编译后的二进制文件,这对于包含C扩展的Python项目尤为重要,可以避免用户在安装时重新编译,下面就来介绍一下如何打包Python项目为whl文件

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程序

目录格式如下:

whltest
    Method.py
    setup.py

2、程序内容

  • Method.py
class Method:
    def __init__(self,name,age):
        self.f_name = name
        self.f_age = age
        print("init success",self.f_name,self.f_age)
 
 
    def getInfo(name,age):
        print(name+"#######"+age)
 
    def my_getInfo(self):
        print(self.f_name,"##########",self.f_age)
  • setup.py
from setuptools import setup
setup(name='Method',
      version='1.0',
      py_modules=['Method'],
      )

3、打whl包

CMD进入setup.py所在目录执行如下命令:

 python setup.py bdist_wheel

在同目录会生成多个文件夹,其中dist文件夹下就是打包成的whl包。

build文件夹通常在构建完成后就不再需要了,除非需要进行调试或查看构建过程的详细信息。在发布或分发项目时,通常只关心最终生成的.whl文件。

4、将whl包导入环境

我使用的是anaconda3,进入对应环境执行如下命令安装:

pip install whl对应全路径

5、查看效果

6、代码验证

3、多个python文件打包

1、程序目录

将多个py文件和__init__.py放在同一个目录下,setup.py要和此目录同级。

目录格式如下:

packageTest
    Test
        __init__.py
        Print.py
        get_data.py
    setup.py

2、程序内容

  • Print.py
def get_info(x):
    print("x = ",x)
  • get_data.py
def get_data(x):
    x1 = 3*x
    return x1
  • setup.py
from setuptools import setup
 
setup(name='test',
      version='1.0',
      description='test',
      author='xy',
      author_email='123456@qq.com',
      packages=['test'],
      )

3、打whl包

同样CMD进入setup.py同级目录下执行如下命令:

 python setup.py bdist_wheel

4、将whl包导入环境

我使用的是anaconda3,进入对应环境执行如下命令安装:

5、查看效果

同单个python文件打包的五步骤;

6、代码验证

到此这篇关于手把手教你打包Python项目为whl文件的文章就介绍到这了,更多相关Python打包项目为whl文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解python 模拟豆瓣登录(豆瓣6.0)

    详解python 模拟豆瓣登录(豆瓣6.0)

    这篇文章主要介绍了python模拟豆瓣登录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 分享15个令人相见恨晚的Python字符串格式化技巧

    分享15个令人相见恨晚的Python字符串格式化技巧

    这篇文章给大家介绍了15个Python字符串格式化技巧,涵盖了f-string的基本用法、格式化数字、日期时间、百分比、进制转换、多行字符串、位置和关键字参数的format()方法等,这些技巧将帮助你编写更高效、优雅且Pythonic的代码,需要的朋友可以参考下
    2024-11-11
  • Yolov5训练意外中断后如何接续训练详解

    Yolov5训练意外中断后如何接续训练详解

    目标检测是计算机视觉上的一个重要任务,下面这篇文章主要给大家介绍了关于Yolov5训练意外中断后如何接续训练的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • Python实现获取视频时长功能

    Python实现获取视频时长功能

    这篇文章主要介绍了Python如何实现获取视频时长功能,可以精确到毫秒。文中的示例代码简洁易懂,对我们的学习有一定的帮助,感兴趣的可以了解一下
    2021-12-12
  • python 实现压缩和解压缩的示例

    python 实现压缩和解压缩的示例

    这篇文章主要介绍了python 实现压缩和解压缩的示例,帮助大家更好的利用python处理文件,感兴趣的朋友可以了解下
    2020-09-09
  • Python中最快的循环姿势实例详解

    Python中最快的循环姿势实例详解

    python给我们提供了多个循环方法,比如while循环、for循环等,下面这篇文章主要给大家介绍了关于Python中最快的循环姿势,需要的朋友可以参考下
    2021-11-11
  • 学习python 之编写简单乘法运算题

    学习python 之编写简单乘法运算题

    这篇文章主要介绍了学习python 第一季 编写简单乘法运算题,需要的朋友可以参考下
    2016-02-02
  • 解决pip install的时候报错timed out的问题

    解决pip install的时候报错timed out的问题

    今天小编就为大家分享一篇解决pip install的时候报错timed out的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python求导数的方法

    Python求导数的方法

    这篇文章主要介绍了Python求导数的方法,涉及Python数学运算的相关技巧,需要的朋友可以参考下
    2015-05-05
  • Pytest中skip和skipif的具体使用方法

    Pytest中skip和skipif的具体使用方法

    在实际的测试中,我们经常会遇到需要跳过某些测试用例的情况,pytest提供了skip和ifskip来跳过测试.下面我们就来通过一些例子看看skip和ifskip具体如何使用吧,需要的朋友可以参考下
    2021-06-06

最新评论