如何将自己的python package打包成可以在其他电脑上安装的whl文件(超全面)

2024-04-29 14:58

本文主要是介绍如何将自己的python package打包成可以在其他电脑上安装的whl文件(超全面),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.python中package包的建立

关于package包的建立参考本人的另一篇Blog。

2.package包打包成可离线安装的whl文件

在已有package包的情况下,对现有package进行打包,可参考如下链接,也可以参考本人后续的相关介绍:主要有如下两个关键

2.1 setup.py的位置

新建一个名为setup.py 的文件,将其放在package包(含有__init__.py的文件夹)的同一级目录。

2.2 setup.py的内容

需要特别注意的是,当需要的填写的模块有多个时,可通过 requires= ['numpy','matplotlib'] 形式进行填写

from setuptools import setup
setup(name='STFT',version='0.0.1',description='Short Time Fourier Transform',author='TXH',author_email='xxxxxx@qq.com',requires= ['numpy','matplotlib'], # 定义依赖哪些模块packages=['STFT','ISTFT','__init__']  #指定py文件,注意不要后缀)'''
name : 打包后包的文件名
version : 版本号
author : 作者
author_email : 作者的邮箱
py_modules : 要打包的.py文件
packages: 打包的python文件夹
include_package_data : 项目里会有一些非py文件,比如html和js等,这时候就要靠include_package_data 和 package_data 来指定了。package_data:一般写成{‘your_package_name’: [“files”]}, include_package_data还没完,还需要修改MANIFEST.in文件.MANIFEST.in文件的语法为: include xxx/xxx/xxx/.ini/(所有以.ini结尾的文件,也可以直接指定文件名)
license : 支持的开源协议
description : 对项目简短的一个形容
ext_modules : 是一个包含Extension实例的列表,Extension的定义也有一些参数。
ext_package : 定义extension的相对路径
requires : 定义依赖哪些模块
provides : 定义可以为哪些模块提供依赖
data_files :指定其他的一些文件(如配置文件),规定了哪些文件被安装到哪些目录中。如果目录名是相对路径,则是相对于sys.prefix或sys.exec_prefix的路径。如果没有提供模板,会被添加到MANIFEST文件中。
'''

2.3 打包

在powershell中cd到setup.py所在目录,并执行以下命令:

python setup.py bdist_wheel # 打包为whl文件
python setup.py sdist # 打包为tar.gz文件

打包后在dist目录下就可以找到打包后的文件

3.参考文献

建立package教程:https://blog.csdn.net/txh3093/article/details/106374412

package打包成whl教程:https://www.cnblogs.com/jruing/p/12650538.html

这篇关于如何将自己的python package打包成可以在其他电脑上安装的whl文件(超全面)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/946404

相关文章

202303青少年软件编程(Python)等级考试试卷(二级)

第 1 题 【单选题】 下列说法正确的是? ( ) A :{123: ’ a’ , ’ a’ : 123} 不是一个合法的字典 B :数字、 字符串、 列表和元组都可以作为字典的键 C :{(12, 34, ’ a’ ) : ’ a’ , ’ a’ : 5678} 是一个合法的字典 D :字典中的内容一经创建就不能再修改 正确答案:C 试题解析:数字、 字符串和元组可以作为字典的键,

Windows 10下通过Hyper-V安装Ubuntu 16.04 、Ubuntu 16.04 18.04 LTS版本下载

Windows 10下通过Hyper-V安装Ubuntu 16.04 https://www.linuxidc.com/Linux/2016-04/129750.htm   WIN10上使用HYPE-V安装UBUNTU16.04 https://blog.csdn.net/huhaoxuan2010/article/details/80088766 使用Hyper-V安装Ubuntu16

python导入包失败ModuleNotFoundError: No module named 'matplotlib.pyplot'; 'matplotlib' is not a package

最近在看 python,在使用matplotlib进行绘图时,提示:ModuleNotFoundError: No module named 'matplotlib.pyplot'; 'matplotlib' is not a package 怎么回事呢? matplotlib这个安装包我也安装了呀。 查资料说 有可能是多个python版本导致的,但是,我本地也只安装了3.6.1的版本。 到底怎么

使用yarn/npm安装插件(涉及electron),总是报错证书错误或者ssl解析错误

同学们可以私信我加入学习群! 正文开始 前言一、问题描述二、解决措施总结 前言 最近electron更新到了30大版本,里面更新的一个重大变化是主进程增加了 WebContentsView 和 BaseWindow,对窗口的控制会更加丝滑。 正好最近在做把文章或者视频一键发布到各自媒体平台的工具,所以决定把BrowserWindow的实现改为BaseWindow,当然

linux 下安装opencv3.0在编译时出现的问题undefined reference to `parallel_pthreads_set_threads_num(int)'

来自:http://blog.csdn.net/lyk_ffl/article/details/47683549 错误如下: Linking CXX executable ../../bin/opencv_perf_core 在编译opencv 3.0 gold时,编译到大约37%时,出现 ../../lib/libopencv_core.so.3.0.0: undefined

VirtualBox 在CentOS下安装增强功能及错误解决

安装步骤如下: 1、执行安装增强功能: 之后会出现“Building the main Guest Addtional module [Failed]”的错误,如下图,安装失败!!! 查看安装日志信息: 2、根据上图提示信息以及错误提示信息“yum install kernel-devel-2.6.32-431.el6.x86_64”进行安装。 可能会

python中try/except/else/finally块的一些例子

Python中的`try/except/else/finally`块可以用来捕获和处理异常,确保程序的健壮性。以下是一些使用这些块的例子: ### 基本异常捕获 ```python try:     # 尝试读取文件     with open('example.txt', 'r') as file:         data = file.read() except FileNotFound

用Python的pynput库成为按键记录高手

哈喽,大家好,我是木头左! 揭秘键盘输入:pynput库的基本介绍 无论是为了安全审计、数据分析还是创建热键操作,能够记录和处理键盘事件都显得尤为关键。这就是pynput库发挥作用的地方。pynput是一个Python库,它允许你控制和监听鼠标和键盘输入。在本节中,将探讨pynput库的基本概念,以及如何使用它来捕捉键盘事件。 安装与配置pynput 要开始使用pynput,首先需要

ICode国际青少年编程竞赛- Python-5级训练场-多参数函数

ICode国际青少年编程竞赛- Python-5级训练场-多参数函数 1、 def go(a, b):Spaceship.step(2)Dev.step(a)Spaceship.step(b)Dev.turnRight()Dev.step(b)Dev.turnLeft()Dev.step(-a)Dev.turnLeft()Dev.step(3)Dev.step(-3)