近期需要做一个python工具,供其他模块使用,就涉及了自定义模块的导入。
这边就主要是做一个备忘…不纠结格式了
首先我们需要明确下我们的目的,是将我们需要的文件打包成模块,使之可以被 pip install 简单的安装,被 import 方便的调用。
那我们先确定下我们需要打包的模块:
MyPack(忽略我的test文件夹)是我们想要打包出来的一个模块。它包含了__init__.py文件以及我们自己写的一些.py文件。这里需要说明的一点是,__init__.py 文件是不能省的。
__init__.ty 的主要作用:
- 标识出该目录为 “Python模块”
- 方便模块导入
- 配置模块的初始化操作
其实具体的作用描述网上很多,可以参考这篇文章。
接下来我们需要一个打包用的脚本 setup.py,这个文件主要是用来控制打包过程的各项参数,其中的内
容很多,没必要全部填入,我就写了这么几个:
from distutils.core import setup
setup(
name='MyPackage', # 包文件名
version='1.0',
description='这就是个描述',
author='YiZhe',
author_email='[email protected]',
py_modules=['MyTest.MyModule'] # 这里添加需要打包的所有文件
)
参数详解
第一步,执行打包,命令为:python setup.py build
这步执行完成后,我们可以看到添加了一个build目录:
这里我们要注意的是,执行这条命令不能偷懒,只输入setup.py文件路径,它是不认识的…
接下来就是分配了, 命令为:python setup.py sdist
这条命令执行完成之后,可能会显示这样的内容:
这里就显示出,之前我们文件中少写的很多参数,它都提出警告内容。(但没关系,就当没看到…)
我们看回目录,多了dist 文件夹,并且文件夹中多了我们需要的 MyPackage-1.0.tar.gz 包
命令: pip install dist\MyPackage-1.0.tar.gz
然后,我们调用试下:
溜了溜了… …
————————————————————
哎,等等,记录下后来遇到的一个报错问题:
问题: " failed to execute pyi_rth_pkgres "
可能原因:python 3.0.0 版本的 pyInstaller 的问题
解决方式:卸载重装 pyInstaller,从gitHub直接安装:
命令:
pip uninstall pyinstaller
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
需要注意的是,重新打包前需要先删除之前打包的时留下的 build 和 dist 文件夹,以及 xxx.spec 文件