如何在Python中使用轮打包模块

  介绍

如何在Python中使用轮打包模块?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

轮文件

轮和鸡蛋都是Python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为. zip即可可看到压缩包里面的内容。按照官网说法,轮子是发行版Python的新标准并且要取代。鸡蛋。

蛋格式是由setuptools在2004年引入,而轮格式是由PEP427在2012年定义。轮现在被认为是Python的二进制包的标准格式。

以下是车轮和鸡蛋的主要的不同点:

轮有一个官方的PEP427来定义,而鸡蛋没有PEP定义。

轮是一种分发格式,即打包格式。而鸡蛋既是一种分发格式,也是一种运行时安装的格式,并且是可以被进口的。

轮文件不会包含.pyc文件

轮使用和PEP376兼容的.dist-info目录,而鸡蛋使用。egg-info目录。

轮有着更丰富的命名规则。

轮是有版本的,每个轮文件都包含轮规格的版本和打包它的实现。

轮在内部被sysconfig路径类型管理,因此转向其他格式也更容易。

distutils和setuptools工具

用Python来环境中构建和安装额外的模块,模块可以基于Python,也可以C/c++写的扩展模块,可以是Python包,包中包含了C和Python编写的模块。

setuptools是Python的企业应用程序工具包(峰值)的一个副项目,它是一组Python的distutilsde工具的增强版(适用于Python 2.3.5以上的版本,64位平台则适用于Python 2.4以上的版本),可以让程序员更方便的创建和发布Python包,特别是那些对其它包具有依赖性的状况。

setuptools重点在于setup . py文件编写:

设置。py参数介绍:

名称:打包起来的包的文件名

版本:版本号,添加为打包文件的后缀名

作者:作者

author_email:作者的邮箱

py_modules:打包的。py文件

包:打包的python文件夹

include_package_data:项目里会有一些非py文件,比如html和javascript等,这时候就要靠include_package_data和package_data来指定了.package_data:一般写成{“your_package_name& # 39;:(“文件”)},include_package_data还没完,还需要修改MANIFEST.in文件manifest。在文件的语法为:包括xxx/xxx/xxx/. ini/(所有以. ini结尾的文件,也可以直接指定文件名)

许可:支持的开源协议

描述:对项目简短的一个形容

ext_modules:是一个包含扩展实例的列表,扩展的定义也有一些参数。

ext_package:定义扩展的相对路径

要求:定义依赖哪些模块

提供:定义可以为哪些模块提供依赖

data_file:指定其他的一些文件(如配置文件),规定了哪些文件被安装到哪些目录中。如果目录名是相对路径,则是相对于sys.prefix或sys.exec_prefix的路径。如果没有提供模板,会被添加到清单文件中。

将python文件(. py)封装成可安装使用的模块

参考:https://docs.python.org/3.6/distutils/introduction.html distutils-simple-example

printtest.py

def 测试():      打印才能(& # 39;print 测试# 39;)

将以上py文件做成python模块,需要在相同目录下创建setup . py文件,设置。py中输入配置信息:

得到setuptools  import 设置      设置(name=& # 39; printtest& # 39;,      ,,version=& # 39; 1.0 & # 39;      ,,py_modules=[& # 39; printtest& # 39;],      以前,,)

打开终端,定位到该文件夹下,输入:

python  setup.py  sdist

此时在目录中生成dist文件夹,文件夹中有testpg-1.0.tar.gz文件,用户安装的话只需要testpg-1.0.tar.gz文件即可。

将此文件解压得到testpg - 1.0文件夹,会发现该文件夹有我们刚刚书写的3个py文件,还有一个PKG-INFO,打开该文件,会显示该模块的具体信息:由于我们没有设置,所以未来为可知

Metadata-Version: 1.0

名称:打印

版本:1.0

简介:未知的

主页:未知的

作者:未知的

Author-email:未知的

许可:未知的

描述:未知的

平台:未知的

终端定位到此文件夹下,输入以下命令,模块将会被安装到解释器对应的Lib/网站目录下:

python  setup.py 安装

安装后,会发现Lib/网站目录下存在printtest.py文件和打印py3.6——1.0。egg-info

应用:

import 打印      printtest.test ()

如何在Python中使用轮打包模块