Python项目如何打包成whl文件

目录

一、简介

二、单个Python文件打包

1、程序目录

2、程序内容

3、打whl包

4、将whl包导入环境

5、查看效果

6、代码验证

三、多个python文件打包

1、程序目录

2、程序内容

3、打whl包

4、将whl包导入环境

5、查看效果

6、代码验证


一、简介

  • 有时候写好的python文件需要封装成一个工具包需要别人调用,可以打成whl包,让别人安装使用。类似java的jar包;
  • __init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。通常__init__.py 文件为空,但是我们还可以为它增加其他的功能。

二、单个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.2',
      py_modules=['Method'],
      )

3、打whl包

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

 python setup.py bdist_wheel

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

4、将whl包导入环境

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

pip install whl对应全路径

5、查看效果

>pip list
Package            Version
------------------ ---------
......
idna               3.3
importlib-metadata 4.11.2
Method             1.2
minio              7.1.4
numpy              1.21.5
......

6、代码验证

import Method

M=Method.Method("zhangsna",18)
M.my_getInfo()
init success zhangsna 18
zhangsna ########## 18

三、多个python文件打包

1、程序目录

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

目录格式如下:

packageTest
    Test
        __init__.py
        Print.py
        printParam.py
    setup.py

2、程序内容

  • __init__.py

        内容为空。

  • Print.py
def get_info():
    print("test#####")
  • printParam.py
def get_info(param):
    print("#############:",param)
  • setup.py
from setuptools import setup

setup(name='Test',
      version='1.0',
      description='test',
      author='hs',
      author_email='aaaa@qq.com',
      packages=['Test'],
      )

3、打whl包

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

 python setup.py bdist_wheel

4、将whl包导入环境

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

5、查看效果

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

6、代码验证

from Test import Print
from Test import printParam

Print.get_info()
printParam.get_info("Lili")
test#####
#############: Lili
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值