Python自定义模块的打包方式 (failed to execute pyi_rth_pkgres 的解决方法)

近期需要做一个python工具,供其他模块使用,就涉及了自定义模块的导入。
这边就主要是做一个备忘…不纠结格式了

一、准备工作:

1、确定 __init__.py 文件

首先我们需要明确下我们的目的,是将我们需要的文件打包成模块,使之可以被 pip install 简单的安装,被 import 方便的调用。

那我们先确定下我们需要打包的模块:
目录结构
MyPack(忽略我的test文件夹)是我们想要打包出来的一个模块。它包含了__init__.py文件以及我们自己写的一些.py文件。这里需要说明的一点是,__init__.py 文件是不能省的。

__init__.ty 的主要作用:

  1. 标识出该目录为 “Python模块”
  2. 方便模块导入
  3. 配置模块的初始化操作

其实具体的作用描述网上很多,可以参考这篇文章

2、创建 setup.py 文件

接下来我们需要一个打包用的脚本 setup.py,这个文件主要是用来控制打包过程的各项参数,其中的内
容很多,没必要全部填入,我就写了这么几个:

from distutils.core import setup

setup(
    name='MyPackage',		# 包文件名
    version='1.0',
    description='这就是个描述',
    author='YiZhe',
    author_email='187xxxx7267@163.com',
    py_modules=['MyTest.MyModule']	# 这里添加需要打包的所有文件
)

参数详解

二、执行打包命令

1、build

第一步,执行打包,命令为:python setup.py build

这步执行完成后,我们可以看到添加了一个build目录:
在这里插入图片描述
这里我们要注意的是,执行这条命令不能偷懒,只输入setup.py文件路径,它是不认识的…
在这里插入图片描述

2、sdist

接下来就是分配了, 命令为: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 文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值