千家信息网

pyinstaller pathex参数引发打包no module name异常怎么解决

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"pyinstaller pathex参数引发打包no module name异常怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"pyinstaller pathex参数
千家信息网最后更新 2026年11月01日pyinstaller pathex参数引发打包no module name异常怎么解决

本文小编为大家详细介绍"pyinstaller pathex参数引发打包no module name异常怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"pyinstaller pathex参数引发打包no module name异常怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

现象:

最近将pyinsatller升级到最新的Version: 5.0.1版本后(之前一直用的是3.5版本同样方法未遇到问题,今次更新到最新版本后5.0.1后打包就遇到问题,具体是这中间哪个版本开始有变化也不清楚了,也不去追究,凡是在新版本中遇到问题就在新版本中解决),详细现象及解决办法如下:

1。 先贴上pyinstaller的官方介绍:点击跳转

2。使用pyinstaller打包完成后到dist目录下点击 .exe程序运行时提示 "no module found",凡是所有外部加载的模块全部无法识别到,然后单独将对应的包放到该dist目录下再运行则问题消失,表明在打包时未正常对应目录所依赖的模块加载进去

3。先来看打包命令,我是使用批处理,跟 .py的主文件(即可运行主窗口文件)在同一目录

@echo offecho Current Dish:%~d0echo Current Dish and Path:%~dp0echo Current CMD default Dir:"%cd%"set "current_dir=%~dp0"echo %current_dir%set "output_dir=%current_dir%"cd %output_dir%;echo "%cd%"pyinstaller.exe -D -w %current_dir%\SmartTools.py -i %current_dir%\icon\Tool.icopause

4。pyinstaller打包的时候会首先生成一个spec文件,我们可以手工去修改这个文件,下次打包指定用这个文件。它的好处是:里面可以写更复杂的选项,也可以重复利用,这个方法我是在pyinstaller 3.5版本中这么用的,但在pyinstaller5.0.1版本中却会每次重新覆盖掉我所修改的spec文件,导致该pathex每次为空,所以在打包时就不会将py文件中所引用的文件加载进去进行编辑打包,关于该pathex参数解释可以到第一步的官方中去查找,下面我截图出来给你们看(明确告诉我们该参数主要就是文件中关于imports导模块所需路径)

5。那到这里就已经知道问题出在哪里了,但要如何处理才能将spec文件中的pathex中带上当前地址呢,上面也已经给出的明确的答案,就是在pyinstaller后面带上 --paths参数,现修改编辑打包文件如下(红色字体为新增部分):

@echo offecho Current Dish:%~d0echo Current Dish and Path:%~dp0echo Current CMD default Dir:"%cd%"set "current_dir=%~dp0"echo %current_dir%set "output_dir=%current_dir%"cd %output_dir%;echo "%cd%"pyinstaller.exe --paths %current_dir% -D -w %current_dir%\SmartTools.py -i %current_dir%\icon\Tool.icopause

6。重新运行该批处理后再去检查 spec文件,查看pathex是否已经将对应目录添加上,经确认该参数中已经有值了,为一个列表

# -*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis(     ['E:\\SmartTools\\\\SmartTools.py'],     pathex=['E:\\SmartTools\\'],     binaries=[],     datas=[],     hiddenimports=[],     hookspath=[],     hooksconfig={},     runtime_hooks=[],     excludes=[],     win_no_prefer_redirects=False,     win_private_assemblies=False,     cipher=block_cipher,     noarchive=False, )

7。 重新到dist目录下去执行 .exe程序,正常启动未报任何错误,到此问题成功解决。

读到这里,这篇"pyinstaller pathex参数引发打包no module name异常怎么解决"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

文件 参数 版本 目录 问题 运行 文章 模块 内容 官方 就是 方法 现象 程序 复杂 妥当 清楚 今次 会首 办法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖北九亚互联网络科技有限公司 互联网 科技创业 科技互联网公司logo 火传媒上海互联网科技 多迪互联网科技有限公司 哈尔滨新华互联网科技 新华互联网科技2019 知域互联网科技有限公司大骗子 本届互联网博览会上的黑科技 允成互联网科技有限公司融资 晋城互联网科技 玉溪新华互联网科技好不好 保险科技服务互联网营销体系 中和天地互联网科技有限公司 恒生互联网科技业指数调整周期 上海互联网科技公司ppt 信承诺互联网科技有限公司 银川新华互联网科技学校原画 上海互联网科技园景观 互联网大会出现的黑科技 朗新科技与工业互联网 互联网科技与金融科技 互联网科技视频素材 上海亿帐通互联网科技 美国互联网前沿科技 彤创互联网科技有限公司 武汉健翔互联网络科技有限公司 恒生互联网科技业指数调整周期 互联网科技和医药行业 众联互联网络科技
0