(实用)Python模块打包

目录

前言

一.什么是setuptools?

二.编写setup.py文件

1.创建一个setup.py文件.

2.调用setuptools的setup 方法,参数如下

3.代码示例

三.执行打包

3.1.执行打包语句

3.1.1 打包成 wheel

3.1.2 打包成 xxx-version.tar.gz

3.2.验证

四.安装

4.1安装whl

4.2 安装gz


前言

平时造好的轮子,最后还是有给大家使用的一天。完整的记录一下,如何把Python模块打包成whl(wheel) 文件或者gz压缩文件。打包时会用到setuptools(60.5.0)工具。

一.什么是setuptools?

setuptoolssetuptools是 Python Enterprise Application Kit(PEAK)的一个副项目,是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。Python还可以帮助我们管理第三方依赖包。
 

二.编写setup.py文件

1.创建一个setup.py文件.

在项目根目录下,创建一个setup.py文件,方便将需要打包的模块找到.

setup.py文件无论打包还是安装都会用到,在setup.py文件忠描述清楚这个模块的信息以及依赖项。

2.调用setuptools的setup 方法,参数如下

  • 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文件中。
     

3.代码示例

from setuptools import setup,find_packages

set_up(
   name = 'foo',#包名
   version = '0.0.1',#版本号
   packages = find_packages()#搜索Demo下的包
)

三.执行打包

3.1.执行打包语句

在set_up.py 文件夹下打开终端,执行set_up.py.

安装包有两种结果 whl文件或者tar.gz文件,可按照自身需求去选择。

3.1.1 打包成 wheel

python setup.py bdist_wheel

 执行成功后, 在项目文件夹下,生成dist文件夹

dist文件夹中的whl文件就是打包好的轮子 

(实用)Python模块打包_第1张图片

3.1.2 打包成 xxx-version.tar.gz

python setup.py sdist

3.2.验证

查看打包的模块 wheel 直接将whl改成zip,可以看到被打包的内容

四.安装

4.1安装whl

pip install XXXXX.whl

4.2 安装gz

解压缩gz文档后,打开文件夹,执行setup.py,模块将会被安装到解释器对应的Lib/site-packages目录下。

python setup.py install

你可能感兴趣的:(python)