使用pyinstaller打包python文件遇到的问题和解决方法

本文详细介绍了使用PyInstaller打包Python程序时可能遇到的问题,包括如何处理依赖的.py文件、添加非二进制资源、设置文件路径以及添加图标等,并提供了具体的解决方法和参考资料。
摘要由CSDN通过智能技术生成

pyinstaller 的基本使用方法

情况1:当所使用的代码都在一个.py文件中,且该代码中没有调用其他文件和import自己写的函数时
例如:
打包下面这个检查输入的ip是否符合规范的程序ipcheck.py,程序中只Import了自带的库re

from re import compile
ipAddr = input("请输入一个ip: ")
compile_ip = compile(
    '^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$')
if compile_ip.match(ipAddr):
    print(True)
else:
    print(False)

下载pyinstaller

pip install pyinstaller

使用Pyinstaller打包。先进入该程序所在的文件夹,在文件资源管理器的文件路径处输入cmd,打开一个console。在界面中输入下面的语句:

pyinstaller -F ipcheck.py

待该指令执行完毕,可在.py文件所在文件夹内,发现两个新建的文件夹build/和dist/,以及一个新建的文件ipcheck.spec。在dist文件夹下可以找到一个.exe文件,直接双击该文件即可执行程序。
在这里附上pyinstaller的使用手册:pyinstaller user manual

进阶使用方法(填坑方式)

情况2:一般来说,当我们做一个比较大的项目的时候,难免会遇到调用不同.py文件中的自建函数,
比如,如果我在代码中加入这一行:

from file_loader import xml_loader

文件file_loader.py与ipcheck.py的文件夹层级关系如下,xml_loader是我在file_loader.py中自定义的一个函数。

|--dir
	|--ipcheck.py
	|--file_loader.py

此时如果还是按照情况1去操作,在运行exe时,会出现下列问题:

在这里插入图片描述
也就是说在打包exe时,我的自定义函数文件并没有被一起打包进去,导致找不到file_loader.py这个文件。那么此时我的解决方式为修改ipcheck.spec中的内容:

#pathex=[], 将这一行改为下面的一行
pathex=[
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值