返回顶部
首页 > 资讯 > 后端开发 > Python >Python3中.whl文件创建及使用
  • 645
分享到

Python3中.whl文件创建及使用

Python3中whl文件Python3创建whl 2023-05-15 09:05:31 645人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

1. wheel介绍: .whl文件(WHL file)也称为轮子(wheel),这是用于python分发(distribution)的标准内置包格式(standard built-

1. wheel介绍:

.whl文件(WHL file)也称为轮子(wheel),这是用于python分发(distribution)的标准内置包格式(standard built-package format)。它包含安装所需的所有文件和元数据(metadata)。.whl文件使用zip进行压缩。.whl文件还包含有关此wheel文件支持的python版本和平台的信息。.whl文件格式是一种即装即用格式(ready-to-install format),允许在不构建源代码分发(without building the source distribution)的情况下运行安装包

.whl文件本质上是zip文件,这些.whl文件可以使用解压缩选项(unzip option)或标准解压缩软件应用程序(如WinZIP和WinRAR)解压缩。

.whl文件按照以下约定命名:

{dist}-{version}(-{build})?-{Python.version}-{abi}-{platfORM}.whl

如果我们之前使用pip安装过Python包,那么我们的系统上很可能已经有轮子(wheel)被安装过。pip是安装wheel的包管理器。

我们可以通过pip安装已下载的.whl文件:pip install <filename>.whl ,安装包后,我们可以执行Python shell并尝试导入包:import whl_dist_name

wheel的直接好处是我们与其他人共享我们的包,他们不必担心构建它。他们只需pip install后即可使用该软件包。它也是一个更小的共享文件(与所有源代码相比),安装速度更快,因为它不需要运行安装脚本。

2. wheel的类型:

(1).universal wheel:包含py2.py3-none-any.whl。它在任何操作系统和平台上都支持Python 2和Python 3。

(2).pure-python wheel:包含py3-none-any.whl或py2-none-any.whl。它支持Python 3或Python 2,但不能同时支持两者。它在其它方面与universal wheel相同,但它会被标记为py2或py3而不是py2.py3标签。

(3).platform wheel:支持特定的Python版本和平台。

3. 创建wheel:

(1).将所有模块(python脚本)、包(包含模块的文件夹/目录)保存在父目录中。随意命名根目录,通常与项目相关。

(2).最好创建一个空的名为__init__.py文件,并将此__init__.py文件放在所有包目录和子包目录下。无需将其保存在根目录中。

(3).创建一个名为setup.py的文件并将其放在根目录中。此脚本的内容至少应包括:distribution name, version number, and list of package names

(4).转到你可以运行python和pip命令的命令提示符。在命令提示符下更改目录并导航到放置setup.py的项目的根目录,执行以下命令:扩展名为.whl的文件将在根目录下自动创建的子目录中创建,名为dist。

wheel中并不包含setup.py,wheel不必运行setup.py脚本。

注:需提取安装wheel setuptools: pip install wheel setuptools,在conda中默认是安装的

python setup.py bdist_wheel --universal # universal wheel
python setup.py bdist_wheel # pure-Python wheel

这里通过conda在虚拟环境base下创建一个wheel,取名为testwheel目录组织结构如下所示:

setup.py内容如下:

import setuptools
 
setuptools.setup(
    name="testwheel",
    version="1.0.0",
    author="fengbinGChun",
    author_email="fengbingchun@163.com",
    description="test wheel",
    packages=setuptools.find_packages(),
    url="https://GitHub.com/fengbingchun",
    license="MIT",
    python_requires=">=3.8"
)

testwheel目录下的__init__.py是个空文件,math目录下的__init__.py内容如下:

from .math_add import *
from .math_sub import *

math_add.py内容如下:

def add3(a, b, c):
    print("call add operation: three parameters ...")
    return (a+b+c)
 
def add2(a, b):
    print("call add operation: two parameters ...")
    return (a+b)

math_sub.py内容如下:

def sub3(a, b, c):
    print("call sub operation: three parameters ...")
    return (a-b-c)
 
def sub2(a, b):
    print("call sub operation: two parameters ...")
    return (a-b)

执行如下命令生成wheel,此wheel仅限于在python3上执行,将终端定位到setup.py目录下

执行完上述命令后会产生3个新的目录,build, dist, testwhell.egg-info,各个目录的内容如下所示,生成的whell在dist目录下,全名为testwheel-1.0.0-py3-none-any.whl,只需将此文件分发出去,其他人安装后即能使用。

4. 导入使用wheel:

如果你想在项目中安装已经安装过的wheel文件,需要更新此wheel的版本号。如果版本号保持不变,pip将不会安装它。或者先卸载已安装的whell: pip uninstall testwheel

通过conda新建一个虚拟环境testwheel,用来测试上面生成的testwheel-1.0.0-py3-none-any.whl,将终端定位到其它的test目录下,并将生成的wheel文件拷贝到此目录下,安装,执行结果如下图所示:

会将此wheel安装到anaconda3/envs/testwheel/lib/python3.8/site-packages/目录下,如下图所示:

在tmp下添加一个test.py文件,用于测试wheel,内容如下:

from testwheel.math import math_add, math_sub
 
a, b, c = 10, 5, 2
 
print("add3:", math_add.add3(a, b, c))
print("add2:", math_add.add2(a, b))
 
print("sub3:", math_sub.sub3(a, b, c))
print("sub2:", math_sub.sub2(a, b))
 
print("test finish")

执行结果如下所示:可见正确的调用了wheel中的接口

如果需要反复的调整wheel的内容,需要反复的测试,又不想修改version number,一种方法是可先卸载已安装的wheel,然后再次安装新的wheel,如下图所示:也可使用--force-reinstall

GitHub: Https://github.com/fengbingchun/Python_Test

到此这篇关于Python3中.whl文件创建及使用的文章就介绍到这了,更多相关Python3中.whl文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python3中.whl文件创建及使用

本文链接: https://lsjlt.com/news/208699.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python3中.whl文件创建及使用
    1. wheel介绍: .whl文件(WHL file)也称为轮子(wheel),这是用于python分发(distribution)的标准内置包格式(standard built-...
    99+
    2023-05-15
    Python3中whl文件 Python3创建whl
  • 使用 sudo 创建文件
    问题内容 我希望使用 Go 的 os.Create(filename) 方法创建一个文件(相当于“mkdir filename”)。但是我没有该文件夹的写入权限。是否有“sudo mk...
    99+
    2024-02-06
  • Java中怎么使用file创建文件
    在Java中,可以使用File类来创建文件。以下是一个示例:```javaimport java.io.File;import ja...
    99+
    2023-09-29
    Java
  • python创建模板文件及使用教程示例
    目录写作思路1、模板的定义2、如何利用模板生成多个文件运行结果写作思路 1、模板的定义 2、如何利用模板生成多个文件 在很多情况下,我们会创建出很多样式相似甚至是相同的类文件,比如在...
    99+
    2024-04-02
  • 怎么在python中使用tempfile创建文件
    本篇文章给大家分享的是有关怎么在python中使用tempfile创建文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python是什么意思Python是一种跨平台的、具有解...
    99+
    2023-06-14
  • C#中如何使用XmlTextWriter创建XML文件
    这篇文章将为大家详细讲解有关C#中如何使用XmlTextWriter创建XML文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。XmlTextWriter对象简介:XmlTextWriter...
    99+
    2023-06-17
  • 在 Python 中使用变量创建文件名
    使用格式化的字符串文字来使用变量创建文件名,例如 f'{variable}.txt'。 格式化的字符串文字使我们能够通过在字符串前面加上 f 来在字符串中包含表达式和变量。 file_name = '...
    99+
    2023-09-22
    python
  • java中怎么使用File.createTempFile创建临时文件
    使用`File.createTempFile()`方法可以创建一个临时文件,并返回一个`File`对象表示该临时文件。以下是使用`F...
    99+
    2023-08-17
    java
  • Python中如何使用变量创建文件名
    本篇内容介绍了“Python中如何使用变量创建文件名”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用格式化的字符串文字来使用变量创建文件名...
    99+
    2023-07-05
  • java如何使用file创建文件
    可以使用Java中的File类来创建文件。下面是一个简单的示例:```javaimport java.io.File;import ...
    99+
    2023-08-31
    java
  • Android使用createNewFile()方法创建文件
    在Android中,使用`createNewFile()`方法可以创建一个新文件。以下是一种常见的使用方法:```javaFile ...
    99+
    2023-09-16
    android
  • Android:使用createNewFile()方法创建文件
    在Android中,我们可以使用File类的createNewFile()方法来创建一个新的文件。以下是一个简单的示例:```jav...
    99+
    2023-09-17
    Android
  • Android 创建AIDL文件使用教程
    目录前言1 创建 AIDL 文件2 实现接口3 服务端公开接口4 客户端调用 IPC 方法5 通过 IPC 传递对象前言 AIDL(Android Interface Definit...
    99+
    2024-04-02
  • pycharm中创建sql文件及模板的过程
    目录pycharm创建sql文件及模板创建模板新建文件pycharm 导入sql导入sql将表导出sqlpycharm创建sql文件及模板 创建模板 pycharm默认新建文件选项中...
    99+
    2024-04-02
  • Ubuntu下使用python3中的venv创建虚拟环境
    1.虚拟环境跟随项目,为单个项目创建虚拟环境 (python3.4以上自带直接使用 ,pip install virtualenv) 1.建立项目目录:(找个目录) mkdir PythonProject cd P...
    99+
    2022-06-04
    python虚拟环境venv ubuntu python 虚拟环境
  • Python批量创建迅雷任务及创建多个文件
    其实不是真的创建了批量任务,而是用python创建一个文本文件,每行一个要下载的链接,然后打开迅雷,复制文本文件的内容,迅雷监测到剪切板变化,弹出下载全部链接的对话框~~ 实际情况是这样的,因为用pytho...
    99+
    2022-06-04
    多个 迅雷 批量
  • win8系统映像文件创建说明及创建步骤
    Windows8系统创建系统映射文件能在系统崩溃的时候还原系统,那么Windows8系统创建系统映射文件要怎么用怎么设置呢本文就是如何使用Windows8系统创建系统映射文件,而达到备份系统的地步。 创建W...
    99+
    2022-06-04
    映像 步骤 文件
  • Linux 中如何使用mkdir命令创建文件夹
    这期内容当中小编将会给大家带来有关Linux 中如何使用mkdir命令创建文件夹,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、mkdir命令使用权限所有用户都可以在终端使用 mkdir 命令在拥有权限...
    99+
    2023-06-17
  • NAS中如何创建和使用加密文件夹
    今天就跟大家聊聊有关NAS中如何创建和使用加密文件夹,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前往TOS桌面>控制面板>权限>共享文件夹; 点击创建,...
    99+
    2023-06-04
  • 浅谈Java中File文件的创建以及读写
    目录1.创建一个文件2.创建一个文件夹3.创建同目录下文件4.删除文件或空文件夹5.递归删除所有文件(包括子文件)6.读取txt文件内容,流操作要用try-catch(字符流)7.读...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作